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