VB .NET - Exibindo uma lista de países e obtendo informações sobre a moeda |
Neste artigo vou mostrar como usar os recursos do namespace System.Globalization da plataforma .NET para exibir uma lista de países e obter informações sobre moeda. |
O namespace System.Globalization contém classes que definem informações relacionadas à cultura, incluindo idioma, país/região, os calendários em uso, os padrões de formatação para datas, moeda e números e a classificação do pedido para seqüências de caracteres.
Essas classes são úteis para escrever aplicativos globalizados. Classes como StringInfo e TextInfo fornecem funcionalidades de globalização avançadas, incluindo suporte substituto e processamento de elemento de texto.
Dentre as classes e enumerações do namespace System.Globalization destacamos a seguir as que iremos usar neste artigo:
Classe/Enumeração | Descrição |
CultureInfo | Fornece informações sobre uma cultura específica (chamada uma localidade para o desenvolvimento de código não gerenciado). As informações incluem os nomes para a cultura, o sistema de gravação, o calendário usado, e a formatação de datas e cadeias de caracteres do tipo. |
RegionInfo | Contém informações sobre o país/região. |
CultureTypes | Define os tipos de listas de cultura que podem ser recuperadas usando o método CultureInfo.GetCultures. |
Calendar | Representa o tempo em divisões como, por exemplo, semanas, meses e anos. |
Neste artigo eu vou mostrar como podemos usar os recursos do namespace System.Globalization para preencher um Combobox em uma aplicação Windows forms e exibir informações de moeda.
Recursos usados :
Criando o projeto no VS Community
Abra o VS Community 2015 e clique em New Project;
A seguir selecione Visual Basic -> Windows -> Windows Forms Application;
Informe o nome Paises_Moeda e clique no botão OK;
A partir da ToolBox inclua os seguintes controles no formulário form1.vb:
1 Combobox - combobox1
2 Label - Label2 e lblinfo
2 Buttons - btnVerificar e btnSair
Disponha os controles conforme o leiaute da figura abaixo:
A seguir vamos definir as variáveis abaixo que serão visíveis em todo o formulário:
Dim cbox As New ComboBox With {.Sorted = True}Note que temos dois controles combobox. O usado no formulário para exibir os paises - cboPaises, e o combobox cbox que estamos usando para obter a informação da moeda.
Agora no evento Load do formulário vamos carregar o controle Combobox - cboPaises - com a informação do nome do país a partir do namespace System.Globalization:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CulturaAtualDoComputador = Globalization.RegionInfo.CurrentRegion.DisplayName
For Each Country In Globalization.CultureInfo.GetCultures(Globalization.CultureTypes.InstalledWin32Cultures)
'muda região
My.Application.ChangeCulture(Country.Name)
NomePais = Globalization.RegionInfo.CurrentRegion.DisplayName
If combobox1.Items.Contains(NomePais) = False Then
'adiciona o nome do pais na combo
combobox1.Items.Add(NomePais)
'adiciona nome do pais e informações na outra combo
cbox.Items.Add(NomePais & "/" & Globalization.RegionInfo.CurrentRegion.CurrencyNativeName & " = " & Globalization.RegionInfo.CurrentRegion.CurrencySymbol)
End If
'limpa o cache
My.Application.Culture.ClearCachedData()
Next
'verifica a cultura atual e atribui às combobox
If cbox.Items.Count > 0 Then
PaisIndice = combobox1.FindString(CulturaAtualDoComputador)
cbox.SelectedIndex = PaisIndice
combobox1.SelectedIndex = PaisIndice
End If
End Sub
|
Vamos definir uma rotina chamada VerificarMoeda que irá obter a informação da moeda e do seu símbolo a partir da combobox - cbox :
Private Sub verificarMoeda()
'obtem o indice do pais selecionado
i = combobox1.FindString(combobox1.Text)
'atribui á combo com as informações
cbox.SelectedIndex = i
'seleciona o nome da moeda e o simbolo
NomeMoeda = cbox.SelectedItem.ToString.Remove(0, cbox.SelectedItem.ToString.IndexOf("/") + 1)
SimboloMoeda = cbox.SelectedItem.ToString.Remove(0, cbox.SelectedItem.ToString.IndexOf("=") + 1).Trim
'exibe as informações
lblinfo.Text = combobox1.Text & " Moeda => " & NomeMoeda & Environment.NewLine & Environment.NewLine & "Símbolo : " & SimboloMoeda
End Sub
|
Neste código obtemos as informações da moeda a partir do controle cbox e exibimos na label lblinfo do formulário.
Podemos chamar esta rotina a partir do evento Click do botão de comando Verificar ou do evento SelectedIndexChanged da combobox. Fica a seu critério.
Executando o projeto e selecionando um país da combobox teremos o resultado abaixo:
Pegue o projeto completo aqui : Paises_Moeda.zip
Jesus lhes respondeu, e disse: A minha
doutrina não é minha, mas daquele que me enviou.
Se alguém quiser fazer a vontade Dele, pela mesma doutrina conhecerá se ela é de
Deus, ou se eu falo de mim mesmo.
João 7:16,17
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 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
https://msdn.microsoft.com/pt-br/library/system.text.asciiencoding%28v=vs.110%29.aspx