Always has some confusion about set values to ComboBox, few minutes ago,I spent some time on this. Figure it out and blog this.
The following is part of the code:
1 private string[] GetName() 2 { 3 string[] strName={"Allen","Cathy","Annie","Eric","Sinon"}; 4 return strName; 5 } 6 private void btn_Click(object sender, EventArgs e) 7 { 8 string[] Name = GetName(); 9 DataTable dt = new DataTable(); 10 dt.Columns.Add("ID",typeof(string)); 11 dt.Columns.Add("Name", typeof(string)); 12 for (int i = 0; i < 5; i++) 13 { 14 DataRow dr = dt.NewRow(); 15 dr["ID"] = i; 16 dr["Name"] = Name[i]; 17 dt.Rows.Add(dr); 18 } 19 comlist.DataSource = dt; 20 comlist.DisplayMember = "Name";//this will display in the ComboBox 21 comlist.ValueMember = "ID";//this is the selectedvalue 22 } 23 24 private void comlist_SelectedValueChanged(object sender, EventArgs e) 25 { 26 string value1 = comlist.SelectedValue.ToString(); 27 28 }
Notes:
No matter give some value to ComboBox.SelectedValue or get vaule from this, this ComboBox need bind some datasource. Otherwise null exception will be thrown out