Usuário com melhor resposta
Preenchendo dados na combobox

Pergunta
-
Sou programador web e estou tentando criar uma aplicao windows, mas estou com a seguinte dvida: como preencher uma combobox com um texto e um valor para aquele texto?
Por exemplo, o controle Dropdownlist para aplicaes web tem um campo "Text" e um campo "Value" onde no primeiro e coloco o texto que vai aparecer e no segundo o valor do campo. Como fao isso no controle Combobox?
Tambm queria saber como percorre esse campo para achar um valor e deixar selecionado?
Respostas
-
Olá Thiago,
Quando for preencher uma comboBox, vc deverá preencher um objeto, para em seguida preencher o combo. Segue um exemplo abaixo:
private void Form_Load(object sender, System.EventArgs e)
{
for (int i=0; i<10; i++)
{
cboTeste.Items.Add(
new Itens(
Convert.ToInt32(i.ToString()), // Aqui vc colocar o value. No caso o value dos meus itens será um número sequencial
"Rafael" + i.ToString() // Aqui vai a descrição de cada Item.
)
);
}
}
Sendo que a classe utilizada foi a Itens. Segue abaixo como ela deverá ficar:
class
Itens{
private int _IDBox;
private string _descBox;
public int IDBox
{
set { this._IDBox = value; }
get { return this._IDBox; }
}
public string descBox
{
set { this._descBox= value; }
get { return this._descBox; }
}
public Itens(int IDBox, string descBox)
{
this._IDBox= IDBox;
this._descBox= descBox;
}
public override string ToString()
{
return this._descBox;
}
}
Abraços,
Rafael
Todas as Respostas
-
Olá Thiago,
Quando for preencher uma comboBox, vc deverá preencher um objeto, para em seguida preencher o combo. Segue um exemplo abaixo:
private void Form_Load(object sender, System.EventArgs e)
{
for (int i=0; i<10; i++)
{
cboTeste.Items.Add(
new Itens(
Convert.ToInt32(i.ToString()), // Aqui vc colocar o value. No caso o value dos meus itens será um número sequencial
"Rafael" + i.ToString() // Aqui vai a descrição de cada Item.
)
);
}
}
Sendo que a classe utilizada foi a Itens. Segue abaixo como ela deverá ficar:
class
Itens{
private int _IDBox;
private string _descBox;
public int IDBox
{
set { this._IDBox = value; }
get { return this._IDBox; }
}
public string descBox
{
set { this._descBox= value; }
get { return this._descBox; }
}
public Itens(int IDBox, string descBox)
{
this._IDBox= IDBox;
this._descBox= descBox;
}
public override string ToString()
{
return this._descBox;
}
}
Abraços,
Rafael
-
Thiago,
Não é necessário criar uma classe para realizar este controle você pode tambem utilizar o DictionaryEntry
cboTeste.ValueMember = "Value"
cboTeste.DisplayMember = "Key"
cboTeste.Items.Add(new DictionaryEntry("Rafael",1))
cboTeste.Items.Add(new DictionaryEntry("Joao",2))