Principales respuestas
VB2010 - Como llenar un combobox con el listado de paises

Pregunta
-
Estimados,
como puedo obtener y luego llenar un combobox con el listado de paises que aparecen en la pestaña ubicación de la configuración regional de Windows?
- Tipo cambiado Marco Elgueta domingo, 23 de enero de 2011 22:32
Respuestas
-
He encontrado la solución, por si alguien lo necesita:
Dim objDic As New Dictionary(Of String, String)()
For Each ObjCultureInfo As System.Globalization.CultureInfo In System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.SpecificCultures)
Dim objRegionInfo As New System.Globalization.RegionInfo(ObjCultureInfo.Name)
If Not objDic.ContainsKey(objRegionInfo.DisplayName) Then
objDic.Add(objRegionInfo.DisplayName, objRegionInfo.TwoLetterISORegionName.ToLower())
End If
Next
Dim obj = objDic.OrderBy(Function(p) p.Key)
For Each val As KeyValuePair(Of String, String) In obj
cboxPais.Items.Add(val.Key)
Next
- Marcado como respuesta Marco Elgueta lunes, 24 de enero de 2011 15:13
Todas las respuestas
-
hola,
>Estimados,>>como puedo obtener y luego llenar un combobox con el listado de paises>que aparecen en la pestaña ubicación de la configuración regional de Windows?
bueno te dejo un link que habla del tema en este mismo foro suerte.
http://social.msdn.microsoft.com/Forums/es/winformses/thread/64f3f269-f501-4178-a3bb-0dee02cba285
Enmanuel Grullard@Developer ASP.NET,ASP.NET MVC C#.NET -
(Primero Cambia la Opcion De tu pregunta ,Cambiala a Pregunta ya que no es un debate.)
Si te refieres a los paises de configuracion regional, puedes obtener esa informacion accediendo al nameSpace Globalization.CultureInfo
Aqui te concedo un pequeÑo codigo de como obtener dicha informacion, espero te sea de ayuda
Private Sub GetGloablizationRegional() For Each GetInfo As System.Globalization.CultureInfo In System.Globalization.CultureInfo.GetCultures(Globalization.CultureTypes.InstalledWin32Cultures) Me.ComboBox1.Items.Add(GetInfo.DisplayName) Me.ComboBox1.Sorted = True Next End Sub Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.GetGloablizationRegional() End Sub
Saludos..
Mark the better answers for you,do not turn off your mind -
Melvin,
gracias por responder. Creo que las líneas de código apuntan al idioma del sistema operativo y no al listado de paises o ubicación que posee Windows. Esta es la imagen: http://img828.imageshack.us/i/paises.png/
-
El espacio de nombres System.Globalization contiene clases que definen información relativa a la referencia cultural, incluido el idioma, el país o región, los calendarios utilizados, los modelos de formato para las fechas, la moneda y los números y el criterio de ordenación de las cadenas. Estas clases son útiles para escribir aplicaciones globalizadas (internacionalizadas).
CultureInfo (Clase) Proporciona información de una referencia cultural concreta, como los nombres de la referencia cultural, el sistema de escritura, el calendario utilizado y cómo se da formato a las fechas y se ordenan las cadenas.
Thread.CurrentCulture Obtiene o establece la referencia cultural del subproceso actual.
Angel R. Jimenez G.
Software Development
Santo Domingo
Republica Dominicana -
Este ejemplo lo escribí en C#. No sabría evaluar exactamente la calidad de la traducción, pero hasta donde entiendo debería estar bien.
Imports System Imports System.Runtime.InteropServices Imports System.Text Imports System.Windows.Forms Namespace ... Public Partial Class MainForm Inherits Form <DllImport("Kernel32.dll", SetLastError := True)> _ Private Shared Function EnumSystemGeoID(GeoClass As Integer, ParentGeoId As Integer, lpGeoEnumProc As GEO_ENUMPROC) As <MarshalAs(UnmanagedType.Bool)> Boolean End Function <DllImport("Kernel32.dll", SetLastError := True)> _ Private Shared Function GetGeoInfo(Location As Integer, GeoType As UInteger, lpGeoData As StringBuilder, cchData As Integer, LangId As Integer) As Integer End Function Const GEOCLASS_NATION As Integer = 16 Const GEO_FRIENDLYNAME As UInteger = &H8 Const GEO_OFFICIALNAME As UInteger = &H9 Private Delegate Function GEO_ENUMPROC(GeoId As Integer) As Boolean Public Sub New() InitializeComponent() End Sub Private Sub MainFormLoad(sender As Object, e As EventArgs) EnumSystemGeoID(GEOCLASS_NATION, 0, AddressOf NombrePais) End Sub Private Function NombrePais(GeoId As Integer) As Boolean Dim nombre As New StringBuilder(128) 'If (GetGeoInfo(GeoId, GEO_OFFICIALNAME, nombre, 128, 0) > 0) Then If GetGeoInfo(GeoId, GEO_FRIENDLYNAME, nombre, 128, 0) > 0 Then comboBox1.Items.Add(nombre.ToString()) End If Return True End Function End Class End Namespace
- Propuesto como respuesta Enrique M. MontejoModerator lunes, 24 de enero de 2011 6:38
-
-
He encontrado la solución, por si alguien lo necesita:
Dim objDic As New Dictionary(Of String, String)()
For Each ObjCultureInfo As System.Globalization.CultureInfo In System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.SpecificCultures)
Dim objRegionInfo As New System.Globalization.RegionInfo(ObjCultureInfo.Name)
If Not objDic.ContainsKey(objRegionInfo.DisplayName) Then
objDic.Add(objRegionInfo.DisplayName, objRegionInfo.TwoLetterISORegionName.ToLower())
End If
Next
Dim obj = objDic.OrderBy(Function(p) p.Key)
For Each val As KeyValuePair(Of String, String) In obj
cboxPais.Items.Add(val.Key)
Next
- Marcado como respuesta Marco Elgueta lunes, 24 de enero de 2011 15:13
-
Melvin,
gracias por responder. Creo que las líneas de código apuntan al idioma del sistema operativo y no al listado de paises o ubicación que posee Windows. Esta es la imagen: http://img828.imageshack.us/i/paises.png/
Que bueno el que hayas encontrado la solucion Perdon por no haber contestado antes...
Saludos. Y buena Suerte.
Mark the better answers for you,do not turn off your mind -