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 JuniorOlá 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