public class ComboboxItem {              public string Text { get; set; }              public string Value { get; set; }             public override string ToString() { return Text; }          }  private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)         {             int selectedIndex = comboBox1.SelectedIndex;             int selecteVal = (int)comboBox1.SelectedValue;              ComboboxItem selectedCar = (ComboboxItem)comboBox1.SelectedItem;             MessageBox.Show(String.Format("Index: [{0}] CarName={1}; Value={2}", selectedIndex, selectedCar.Text, selecteVal));         } I'm adding them like:
ComboboxItem item = new ComboboxItem();                     item.Text = cd.Name;                     item.Value = cd.ID;                     this.comboBox1.Items.Add(item); I keep getting a NullReferenceExeption and not sure why. the text seems to show up just fine.
The ComboBox class searches for the specified object by using the IndexOf method.
A ComboBox control is an items control that works as a ListBox control but only one item from the collection is visible at a time and clicking on the ComboBox makes the collection visible and allows users to pick an item from the collection. Unlike a ListBox control, a ComboBox does not have multiple item selection.
Try this:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) {     ComboBox cmb = (ComboBox)sender;     int selectedIndex = cmb.SelectedIndex;     int selectedValue = (int)cmb.SelectedValue;      ComboboxItem selectedCar = (ComboboxItem)cmb.SelectedItem;     MessageBox.Show(String.Format("Index: [{0}] CarName={1}; Value={2}", selectedIndex, selectedCar.Text, selecteVal));         } You are getting NullReferenceExeption because of you are using the cmb.SelectedValue which is null. the comboBox doesn't know what is the value of your custom class ComboboxItem, so either do:
ComboboxItem selectedCar = (ComboboxItem)comboBox2.SelectedItem; int selecteVal = Convert.ToInt32(selectedCar.Value); Or better of is use data binding like:
ComboboxItem item1 = new ComboboxItem(); item1.Text = "test"; item1.Value = "123";  ComboboxItem item2 = new ComboboxItem(); item2.Text = "test2"; item2.Value = "456";  List<ComboboxItem> items = new List<ComboboxItem> { item1, item2 };  this.comboBox1.DisplayMember = "Text"; this.comboBox1.ValueMember = "Value"; this.comboBox1.DataSource = items; If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With