i have 2 windows forms. in first form have datagridview , search button. wen click search, grid fills data datatable returned stored procedure. need take single column datagridview , fill listbox in form.
how can fill listbox in second form, values of column @ index 3 of first form ?
dt = rec.advancdsearch(txtname.text.tostring(),int.parse(cmblocation.selectedvalue.tostring()), cmbstatus.text.tostring(), txtfrom.text.tostring(), txtto.text, cbmgendr.text, int.parse(cbmjob.selectedvalue.tostring())); datagridview1.datasource = dt; if (datagridview1.rows.count < 2) { messagebox.show("عذراً لم يتم العثور على اى نتائج بحث مطابقة للبينات المدخلة", "عملية البحث", messageboxbuttons.ok, messageboxicon.information); lblcount.text = "لا يوجد نتائج"; } else { lblcount.text = "نتائج البحث \n" + (datagridview1.rows.count-1); }
get values
as option can select values of column @ index 3 of datagridview way:
var list = datagridview1.rows.cast<datagridviewrow>() .where(x => !x.isnewrow) .select(r => r.cells[3].value.tostring()) .tolist(); also can values datatable:
var list = dt.rows.cast<datarow>().select(r => r.field<string>(3)).tolist(); pass values form
after getting list, should pass values form way:
var f2 = new form2(list); f2.show(); to able to write var f2 = new form2(list); , pass list second form, should change constructor of form accept value of type list<string>:
list<string> list; public form2 (list<string> l) { initializecomponent(); list= l; this.listbox1.datasource = list; } show in listbox
as can see above, in second form, enough use:
this.listbox1.datasource = list; also can add items:
this.listbox1.items.addrange(list.toarray());
Comments
Post a Comment