私は自分のプログラムの互換性を高めようとしています。そのために、たとえば、
textBox.Text = Convert.ToString(value)
の代わりに使用= "value"
現在のユーザーの小数点記号を取得し、それreplace
をtryparse
char sepdec = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
float.TryParse(str.Replace(",", sepdec.ToString()).Replace(".", sepdec.ToString()), out testvariable;
しかし、これらのソリューションは、ほとんどのプログラムを心配せずに既にコーディングしている場合、実装するのは困難です。
だから私は、すべてを編集することなく、コード全体に互換性を持たせる方法を見つけようとしていtryparse
ますtextbox
私は次のことを試みました:
//Get the current user decimal separator before the program initializes
char sepdec = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
//Create a current culture clone and change the separator to whatever the user has in his regional options, before the initializing the component
public Form1()
{
System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
customCulture.NumberFormat.NumberDecimalSeparator = sepdec.ToString();
System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
InitializeComponent();
}
しかし、私はこれをテストしましたが、実際には何もしていません。プログラムに のようなものを理解させるはずではありませんでしたok, now you use dot as your decimal separator altough you have values in textBox as "2,5"
か?