Desenvolvimento - C#

Windows Form: Adicionando Valores no ComboBox

Este artigo simples mostra como preencher uma comboBox manualmente que possui nome e valor, ou seja, como se os dados viessem do banco de dados.

por Mauricio Junior



Olá pessoal, meu nome é Mauricio Junior. Estou disposto a mostrar como preencher uma comboBox manualmente que 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

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() que 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
Mauricio Junior

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 e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.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