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