Adicionando Valores no ComboBox
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
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
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.