none
Preenchendo dados na combobox RRS feed

  • 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?

     

     

    sexta-feira, 27 de outubro de 2006 21:47

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

    quinta-feira, 2 de novembro de 2006 18:52

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

    quinta-feira, 2 de novembro de 2006 18:52
  • 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))
    terça-feira, 2 de janeiro de 2007 20:56