Cambio de Configuracion Regional e Idioma (Cambio de estandares y formatos)
-
Thursday, October 30, 2008 7:31 PM
Hola muuy buen dia a todos.
Necesito que me ayuden con algo que me tiene a mal andar ya mucho tiempo.
Tengo desarrollada una aplicacion en C# y lo que pasa que para los dobles por lo general se usan los puntos pero eso tambien influye de como este la configuracion regional, porque algunas computadoras estan ya configuradas para que utilicen las comas como separador de los dobles, y ahi el error porque dentro del programa si yo ingreso 45.54 no hay problema pero si ingreso 45,54 me lo coge como si ubiera puesto 4545.
Alguien me puede decir se hay algun codigo que me permita colocarlo dentro del codigo para cambiar la configuracion regional o en si para que solo utilice los puntos y sea independiente de los standares y formatos de la configuracion regional.
Les agradeceria mucho que me puedan ayudar
All Replies
-
Thursday, October 30, 2008 9:32 PMModerator
ejemplo para establecer la configuracion regional de la aplicacion en español españa para el formato de numero
Code SnippetCultureInfo ci = new CultureInfo("es-es");
CultureInfo.CurrentCulture.NumberFormat = ci.NumberFormat;
CultureInfo.CurrentUICulture.NumberFormat = ci.NumberFormat;
- Marked As Answer by Juan Carlos Ruiz [BogotaDotNet.org]Moderator Wednesday, April 15, 2009 5:22 AM
-
Tuesday, October 25, 2011 4:06 PM
Hola, todo esto va al inicializar mi aplicación windows mobile:
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Data.SqlServerCe;
using H1xSDK;
using OpenNETCF.ComponentModel;
using elGuille.info.Util.Conversion;
using System.Runtime.InteropServices;
namespace GPSTracking_On_Line
{
public partial class frmPrincipal : Form
{
AtributosMetodos am = new AtributosMetodos();
public frmPrincipal()
{ try
{ Cursor.Current = Cursors.Default; InitializeComponent();
am.CambiarConfiguracionRegional();
...
}
}
}
}
public void CambiarConfiguracionRegional()
{
try
{
RegistryKey clave = Registry.LocalMachine.OpenSubKey("nls", true);
clave.SetValue("DefaultLCID", 0x0409);//English - United States
clave.Close();
clave = Registry.LocalMachine.OpenSubKey("nls\\overrides", true);
clave.SetValue("LCID", 0x0409);//English - United States
clave.Close();
CultureInfo ci = new CultureInfo("en-us");
//ci.DateTimeFormat.ShortDatePattern = "dd-MM-yyyy";
//ci.DateTimeFormat.LongDatePattern = "dd, MMM dd, yy";
//CultureInfo.CurrentCulture.DateTimeFormat = ci.DateTimeFormat;
CultureInfo.CurrentCulture.NumberFormat = ci.NumberFormat;
CultureInfo.CurrentUICulture.NumberFormat = ci.NumberFormat;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Justo en la línea marcada con negrita y subrayada me da el siguiente error...
"InvalidOperationException"
Estoy tratando de establecer la configuración regional desde una aplicación para Windows Mobile 5.0
Ademas quiero quitar los comentarios a las líneas comentadas, valga la redundancia, para la configuración de fecha corta y larga como sigue...
ci.DateTimeFormat.ShortDatePattern = "dd-MM-yyyy";
ci.DateTimeFormat.LongDatePattern = "dd, MMM dd, yy";
CultureInfo.CurrentCulture.DateTimeFormat = ci.DateTimeFormat;Favor indicarme en qué estoy equivocándome, gracias.

