ho quasi lo stesso problema come il ragazzo in questa discussione:C# doppie mostrare virgola invece di periodo
Convert Float that has period instead of comma?
Così che il mio
double x = 234.4;
string y = x.ToString();
ottengo y == "234,4"
;
Ancora peggio ... Double.Parse("234.4")
genera un'eccezione.
Ho scritto molto codice prima che mi venisse chiesto di utilizzare il punto anziché la virgola, quindi preferirei avere un modo per cambiare il mio CultureInfo a livello globale.
C'è qualche impostazione nei progetti che posso fare?
ho provato:
Application.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Essi tipo di lavoro. Funzionano per gran parte dell'applicazione, ma tutti i controlli che si trovano nelle schede di TabControl continuano a utilizzare i miei computer Localized CultureInfo.
Qualche idea su come risolvere questo?
Normalmente l'impostazione di CultureInfo sul thread dovrebbe essere sufficiente. Forse stai eseguendo il codice che imposta cultureinfo su un altro thread rispetto a quello della GUI? –
Huh! Questo era effettivamente il caso. Grazie! Pensavo che l'impostazione di Application.CurrentCulture avrebbe influito su tutti i thread. .... e lo fa, ma solo _if_ L'ho impostato prima di creare il mio modulo per qualche motivo. L'avevo messo sotto la creazione del modulo (ma prima dell'esecuzione). In ogni caso, caso chiuso! Grazie ancora! – Presidenten