The best way to do this is by using the Datasource property of Combobox, this way Combobox is already prepared to use Databinding, not to mention that if the value of the key field is of a different type of string, avoid having to use Casts for the code, see an example below:
// ***** Exemplo 1 - Utilizando uma List
// Neste exemplo utilizarei uma lista de KeyValuePar para identificar os meus itens.
var lstData = new List<KeyValuePair<int, string>>
{
new KeyValuePair<string, string>(1, "Valor 1"),
new KeyValuePair<string, string>(2, "Valor 2"),
new KeyValuePair<string, string>(3, "Valor 3"),
new KeyValuePair<string, string>(4, "Valor 4")
};
cboComboBox1.DataSource = null;
cboComboBox1.Items.Clear();
// Utilizo um BindingSource para "bindar os dados com os itens do Combobox"
cboComboBox1.DataSource = new BindingSource(lstData, null);
// Aqui fala qual será o campo a ser exibido
cboComboBox1.DisplayMember = "Value";
// Aqui fala qual campo será selecionado
cboComboBox1.ValueMember = "Key";
// ***** Exemplo 2 - Utilizando uma List de um objeto
// Neste exemplo utilizarei uma lista de KeyValuePar para identificar os meus itens.
class ObjetoTeste
{
public ObjetoTeste (int codigo, string descricao)
{
this.Codigo = codigo;
this.Descricao = descricao;
}
public int Codigo { get; private set; }
public string Descricao { get; private set; }
}
var lstData = new List<ObjetoTeste>
{
new ObjetoTeste(1, "Valor 1"),
new ObjetoTeste(2, "Valor 2"),
new ObjetoTeste(3, "Valor 3"),
new ObjetoTeste(4, "Valor 4")
};
cboComboBox1.DataSource = null;
cboComboBox1.Items.Clear();
// Utilizo um BindingSource para "bindar os dados com os itens do Combobox"
cboComboBox1.DataSource = new BindingSource(lstData, null);
// Aqui fala qual será o campo a ser exibido
cboComboBox1.DisplayMember = "Value";
// Aqui fala qual campo será selecionado
cboComboBox1.ValueMember = "Key";
When picking up the combobox data just use the Selectedvalue property of the combobox:
int intCodigoSelecionado = (int) cboComboBox1.SelectedValue;
Welcome to Stackoverflow! Please explain the problem better, and if possible include a example of code that reproduces what is happening, because your question is not noticeable. See Help Center How to Ask.
– Taisbevalle