2014-01-31 23 views
0

我有這個應用程序,它需要用戶引入一些價格等工作與dataGridViews也顯示。問題是,在某些計算機上'.'這被視爲','我設法得到一些TextBox離開事件,併爲它設置Invariant文化,但是沒用,因爲即時通訊使用dataGridViews來顯示,也ReportViewer我也有一個代碼轉換數字文字和這個問題我的應用程序是在這個文化問題,目前的狀態不值錢,所以我需要的一切設定爲固定區域性不管它會採取的值,例如:爲整個應用程序設置文化不變(線程)點'。'而不是','

2.00作爲200,00那臺電腦我想在使用不變文化無論是什麼顯示2.00'.'而不是','

+1

您不會將所有內容都設置爲不變文化,您會設置一個不變的文化,然後在相關位置使用它。在某個地方你要去或從字符串和假設文化,當你應該設置一個不變的應用程序,並在這樣做時使用它。如果你有FxCop,你可以啓用全球化規則,它會跟蹤所有有問題的代碼。 Parse,TryParse,Convert,ToString和String.Format是通常的嫌疑犯。 –

+0

正如我所說我還需要在dataGridView中使用來顯示'。'而不是',' – user3144640

+0

不是關於你需要什麼,它關於用戶需要什麼,他們需要輸入和看到他們的文化中的數據,而不是你的,因爲你正在努力編寫正確的軟件。 –

回答

1

我不會推薦強制應用程序文化不變或特定的文化。但那就是你想要的...檢查this SO問題的答案。

如果您只想更改datagridview,請更改DefaultCellStyle.FormatProvider以使用您所在國家的文化。在下面的示例中,我已將FormatProvider更改爲使用英美文化。

Column.DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("en-US") 
+0

對於這個特定的應用程序,我只需要這種不變的文化,它只會在我的國家使用,如果我不這樣做,整個應用程序是沒用的 – user3144640

+0

@ user3144640 - 在用戶文檔或發行說明中添加一個條目,要求用戶切換您的國家的文化。它取決於你..答案中給出的鏈接可能會有所幫助。 – Junaith

+0

至少告訴我如何讓dataGridView使用'。'而不是「,」承認改變文化或任何這可以回答我的問題我有2列顯示小數,所以foreach(dataGridView1.Rows DataGridViewRow行) – user3144640

0

你可以試試下面,先天下之憂:

CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator = "."; 

不過,我建議區分用戶交互,讓它在默認文化發生。

+0

對於這個特定的應用程序,我只需要這種不變的文化,它只會在我的國家使用,如果我不這樣做,整個應用程序是無用的 – user3144640

+0

你說你自己*電腦*。您的應用程序在具有不同語言設置的PC上運行。使它們相似=問題解決, - 或 - 做出正確的應用程序,我(作爲用戶)可以使用我的數字鍵盤輸入小數點。 – Sinatr

+0

如何使它們類似我沒有訪問用戶應用程序,我想強制這我不想給選項 – user3144640

相關問題