visual studio microsoft espaƱol descargar community c# combobox selecteditem selectedvalue selectedindexchanged

c# - microsoft - visual studio installer



Obtener el valor seleccionado de un cuadro combinado (5)

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)); }

Los estoy agregando como:

ComboboxItem item = new ComboboxItem(); item.Text = cd.Name; item.Value = cd.ID; this.comboBox1.Items.Add(item);

Sigo recibiendo una NullReferenceExeption y no estoy seguro de por qué. el texto parece mostrarse bien.


El problema que tiene con SelectedValue no se está convirtiendo en entero. Este es el problema principal por lo que usar el siguiente fragmento de código lo ayudará a:

int selectedValue; bool parseOK = Int32.TryParse(cmb.SelectedValue.ToString(), out selectedValue);


Prueba esto:

private void cmbLineColor_SelectedIndexChanged(object sender, EventArgs e) { DataRowView drv = (DataRowView)cmbLineColor.SelectedItem; int selectedValue = (int)drv.Row.ItemArray[1]; }


Prueba esto:

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)); }


Tuve un error similar, Mi clase es

public class ServerInfo { public string Text { get; set; } public string Value { get; set; } public string PortNo { get; set; } public override string ToString() { return Text; } }

Pero lo que hice, fundí mi clase en la propiedad SelectedItem del ComboBox. Entonces, tendré todas las propiedades de clase del elemento seleccionado.

// Code above ServerInfo emailServer = (ServerInfo)cbServerName.SelectedItem; mailClient.ServerName = emailServer.Value; mailClient.ServerPort = emailServer.PortNo;

¡Espero que esto ayude a alguien! ¡Aclamaciones!


cmb.SelectedValue NullReferenceExeption porque está utilizando cmb.SelectedValue que es nulo. el comboBox no sabe cuál es el valor de su clase personalizada ComboboxItem , así que tampoco lo hace:

ComboboxItem selectedCar = (ComboboxItem)comboBox2.SelectedItem; int selecteVal = Convert.ToInt32(selectedCar.Value);

O mejor de usar enlaces de datos como:

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;