c# - How can I fill a ListBox using data of a Column of a DataGridVeiw? -


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