Adicionando Valores no ComboBox


por Mauricio Junior em 1/1/2011 0

Windows Form

 

Olá pessoal, meu nome é Mauricio Junior. Estou disposto a mostrar como preencher uma comboBox manualmente cujo possui nome e valor, ou seja, como se os dados viessem do banco de dados.

 

Requisitos:

 

-          Visual Studio.NET 2005 instalado

-          Linguagem C#.NET

-          Conhecimento básico de classe

-          Framework 2.0

 

Livros publicados.

 

         Antes de qualquer dúvida já adianto que o artigo é fácil e pode ser bem aproveitado no seu dia a dia. A idéia inicial foi a seguinte: - estava eu querendo preencher uma comboBox em um projeto Windows Form sem a utilização de um banco de dados, isso porque os valores são fixos. Porém preciso que a combo possua valor e nome como se fosse preenchido pelo banco de dados.

         A idéia foi usar ArrayList() cujo vem com o framework 2.0.

 

Primeiro Passo

        

Depois que criei o projeto do tipo Windows Form. Criei uma classe chamada drop.cs. (Referência 1.1)

Referência: 1.1

 

Dentro da classe importei uma coleção genérica no topo da classe.

 

using System.Collections.Generic;

 

Referência: 1.2

 

Criei dois atributos, um chamado nome e outro valor. Um do tipo string e outro do tipo int. Automaticamente com as teclas de atalho Ctrl+R e Ctrl+E eu criei os atributos, ou seja, get e set dos mesmos. (Referência 1.3)

 

 

 

        string _nome;

        int _valor;

 

        public int Valor

        {

            get { return _valor; }

            set { _valor = value; }

        }

 

        public string Nome

        {

            get { return _nome; }

            set { _nome = value; }

        }

 

Referência: 1.3

Dentro da mesma classe criada, fiz um método construtor para a atribuição automática dos valores enviados no momento da instância. (Referência 1.4)

 

 

       public drop(string nome, int valor)

        {

            Nome = nome;

            Valor = valor;

        }

 

Referência: 1.4

 

Note: criei um método public com o mesmo nome da classe cujo recebe dois parâmetros, nome e valor. O atributo Nome recebe o nome do parâmetro e o atributo Valor recebe o parâmetro valor. Perceba que um começa com a letra maiúscula e a outra minúscula.

 

Veja como fica toda a classe: (Referência 1.5)

 

 

using System;

using System.Collections.Generic;

using System.Text;

 

namespace DropDownList

{

    public class drop

    {

        public drop(string nome, int valor)

        {

            Nome = nome;

            Valor = valor;

        }

 

        string _nome;

        int _valor;

 

        public int Valor

        {

            get { return _valor; }

            set { _valor = value; }

        }

 

        public string Nome

        {

            get { return _nome; }

            set { _nome = value; }

        }

   }

}

 

Referência: 1.5

 

Window Forms

 

Agora dentro do formulário, arrastei da barra de toolbox o componente chamado ComboBox para a tela. (Referência 1.6)

 

Referência: 1.6

 

Deixei com o mesmo ID, ou seja, comboBox1. No método Load do formulário preencho a combo com os valores fixos. (Referência 1.7)

 

 

        private void Form1_Load(object sender, EventArgs e)

        {

            ArrayList arr = new ArrayList();

            arr.Add(new drop("nome1",1));

            arr.Add(new drop("nome2",2));

 

            comboBox1.DataSource = arr;

            comboBox1.DisplayMember = "nome";

            comboBox1.ValueMember = "valor";

        }

 

Referência: 1.7

 

Explicação:

 

Criei um arrayList e adicionei com o comando .Add os valores, porém coloquei um new chamando a classe e passando os dois parâmetros; nome e valor. Após adicionar, no datasource do comboBox1 coloco a variável do arrayList.

 

No displayMember coloquei o valor “nome” cujo deve aparecer para o usuário e no ValueMember coloquei o “valor” onde o será gravado no banco de dados. É importante colocar estes atributos com o mesmo nome da classe.

 

Resultado Final

 

Referência: 1.8

 

Bom, eu fico por aqui.

Espero ter ajudado de alguma forma.

 

Qualquer dúvida, favor entrar em contato.

Mauricio Junior

www.mauriciojunior.org

voltar   comente  subir

 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:
Comentado por: Diegovisk - 19/5/2008 0:00:00
não entendi direito...

o comando não poderia ser simplificado da seguinte forma???

1°- Selecione o combobox onde deseja add os valores.

2°- Vá em properties do combobox.

3°- Ná coluna, vá em Items e click em (collection).

4°- Sendo assim, add os valores , lembrando que é um por linha!

5°- Copile!

Fica post a dúvida!, aguardo resposta tanto aqui quanto no fórum em relação ao googlemaps.

vlw
Comentado por: Diegovisk - 19/5/2008 0:00:00
não entendi direito...

o comando não poderia ser simplificado da seguinte forma???

1°- Selecione o combobox onde deseja add os valores.

2°- Vá em properties do combobox.

3°- Ná coluna, vá em Items e click em (collection).

4°- Sendo assim, add os valores , lembrando que é um por linha!

5°- Copile!

Fica post a dúvida!, aguardo resposta tanto aqui quanto no fórum em relação ao googlemaps.

vlw
Comentado por: Igor - 18/12/2008 0:00:00
A classe ArrayList não pertence ao pacote Generic(System.Collections.Generic) , ela está diretamente dentro de System.Collection...
Comentado por: Tânia - 9/7/2009 0:00:00
Oi Mauricio eu estou com um problema.
Quando eu salvo o valor que esta na ComboBox eu salvo como
ValueMember...
quando eu selecionar os dados que eu gravei no banco e selecionar em uma dataGrid, como fazer para preencher com o valor nome dela nao o valor que eu atribui:
Por exemplo
Na combo "Normal"=003
quando seleciono minha grid ele preenche a combo com o 003 nao com a palavra "normal" como eu desejaria

como posso fazer

Obrigada
Comentado por: Mauricio Junior - 5/2/2010 0:00:00
Tânia, no caso você quer gravar dois valores na combo para gravar no banco? O melhor mesmo seria você pesquisar o 003 para gravar e buscar o Normal. Entendeu?

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Plataforma Web ou Windows Forms ?
GridView - Valor total no footer
Definindo o botão padrão.
Contagem Regressiva com C# e JavaScript
Construindo o Windows 8
Customizando o Membership e Role Provider
Token e Sessão Corrente com C#.NET
Resources e Internacionalização usando Visual Studio.NET 2005 (Parte IV)
Gerando Relatório e Exportando para o Excel
Vídeo Live Search
Windows Phone 7, nada como aprender vendo
SQL Server 2005 SP2 já está disponível :)
MinimizeBox no Celular
ModalDialogExtender
Vídeo: Série Atlas.NET - Parte III
Criando XML a partir do DataSet Tipado com Visual Studio.NET 2005 – Parte I
Criando Help com Visual Studio.NET
A mágica do ResolveURL
VS 11 preparado para HTML 5
Crie a sua própria rede social no ning
Trabalhando com Cookie usando Visual Studio.NET 2005 (parte I)
Misturando dados
Desenvolvendo software com qualidade
SmartNavigation – 1.0 e 1.1 MaintainScroll PositionOn Postback – 2.0
Dica ReportViewer
Alongar é preciso
Ebook: Desenvolvendo WebServices
Vídeo Sobre Atributes e String Builder com Visual Studio .NET 2005
Orientação a Objetos - Microsoft PetShop 3.0
MSDN Code Gallery
Mobilidade e Aplicativos Mobile
Cookies
Gravando Erros com Exception no arquivo de log - Parte II
As várias maneiras de mandar e-mail utilizando .NET
Vídeo: Série Atlas.NET - Parte I