VB .NET - Vinculando um ComboBox/ListBox a um Enumeration
Neste artigo vou mostrar como vincular uma Combobox a um Enumeration usando a linguagem VB .NET. |
Recordando, sabemos que
uma enumeração é um conjunto relacionado de constantes.
Os membros da enumeração são definidos entre as
declarações Enum e End Enum e são inicializados
com valores constantes.
A enumeração é usada para agrupar um conjunto de
constantes sob um nome comum, portanto, o valor pode ser
referido por um valor de seqüência em vez do valor
numérico.
No nosso exemplo vamos definir uma enumeração contendo
os nomes dos meses chamada MesesDoAno:
Private Enum MesesDoAno Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro End Enum |
Por padrão o primeiro enumerador possui o valor 0, e , cada enumerador posterior é uma unidade maior que o anterior, a menos que você especifique de forma explicita um valor para um enumerador específico. Assim Janeiro tem valor 0, Fevereiro valor 1, e, assim por diante.
Como podemos vincular uma enumeração a um Combobox/ListBox ?
Sim, podemos vincular os valores de uma enumeração a um combobox ou listbox para os valores na lista.
A classe Enum fornece um método estático chamado 'GetValues' que retorna uma matriz de todos os itens na enumeração.
Assim podemos fazer a vinculação usando o seguinte código :
Me.ComboBox1.DataSource = System.Enum.GetValues (GetType (NomeDaEnumeracao))
Me.ListBox1.DataSource = System.Enum.GetValues (GetType (NomeDaEnumeracao))
O argumento para GetValues é um valor de tipo para enumeração que deesja recuperar.
O método GetType retorna um objeto do tipo com base no nome da enumeração.
Para saber o nome selecionado no controle você pode usar a propriedade SelectedText.
Para saber o valor constante associado ao nome você precisa usar a propriedade SelectedValue e fazer a conversão para o tipo da Enum usada.
Dim nome as
NomeDaEnumeracao = CType (ComboBox1.SelectedValue,
NomeDaEnumeracao)
Dim nome as NomeDaEnumeracao = CType
(ListBox1.SelectedValue, NomeDaEnumeracao)
Vamos agora ao exemplo completo.
Recursos Usados:
Criando o projeto no VS Community 2017
Abra no VS community 2017 e no menu File clique em New Project;
A seguir selecione o template Visual Basic -> Windows -> Windows Forms Application e informe o nome Vbn_ComboEnum e clique em OK;
Agora abra o formulário Form1.vb e inclua os seguintes controles no formulário:
1 Combobox - cboDados
1 Button - btnCarregar
1 ListBox - lbDados
1 DataGridView - dgvDados
Disponha os controles conforme o leiaute da figura abaixo:
Definindo o código do formulário
Namespaces usados no formulário:
Imports System.Enum
1- Código do botão de comando - Carregar dados da Enumeration
No evento Click deste botão inclua o código abaixo:
Imports System.Enum
Public Class Form1
Private Enum MesesDoAno
Janeiro
Fevereiro
Março
Abril
Maio
Junho
Julho
Agosto
Setembro
Outubro
Novembro
Dezembro
End Enum
Private Sub btnCarregar_Click(sender As Object, e As EventArgs) Handles btnCarregar.Click
Me.cboDados.DataSource = GetValues(GetType(MesesDoAno))
Me.lbDados.DataSource = GetValues(GetType(MesesDoAno))
End Sub
Private Sub cboDados_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboDados.SelectedIndexChanged
Dim mes As MesesDoAno = CType(cboDados.SelectedValue, MesesDoAno)
MessageBox.Show("Mês selecionado : " + mes.ToString())
End Sub
Private Sub lbDados_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lbDados.SelectedIndexChanged
Dim mes As MesesDoAno = CType(lbDados.SelectedValue, MesesDoAno)
MessageBox.Show("Mês selecionado : " + mes.ToString())
End Sub
End Class
|
Executando o projeto teremos o resultado a seguir:
Pegue o projeto completo aqui: Vbn_ComboEnum.zip
'E o testemunho é
este: que Deus nos deu a vida eterna; e esta vida está em seu Filho.(Jesus
Cristo)'
1 João 5:11
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Preenchendo um controle Combobox e ListBox com ... - Macoratti.net
Uma rotina para preencher controles de lista : combobox , listbox ,etc...
VB .NET - Operações com ListBox : Copiar, Colar ... - Macoratti.net