2016-07-16 3 views
0
private void TextBox_TextChanged(object sender, EventArgs e) 
{ 
    string value = TextBox.Text.Replace(",", ""); 
    long ul; 
    if (long.TryParse(value, out ul)) 
     { 
      TextBox.TextChanged -= TextBoxTextChanged; 
      TextBox.Text = string.Format("{0:#,#0}", ul); 
      TextBox.SelectionStart = TextBox.Text.Length; 
      TextBox.TextChanged += TextBoxTextChanged; 
     } 
} 

私はC#の(例:1,234.1234に1234.1234)に等しいボタンを押して電卓で10進数値にカンマを入れたい小数値とカンマ

しかし、それは私の願望の結果を与えていません。親切にも私がこの問題を解決するのを助けてくれますか?

答えて

0

はあなたの文字列にドットを付加することによって(例えば1.)あなたのイベントの名前を修正し、それの後にロジックに任意の番号なし.を処理するために、少し変更する必要があり、この

TextBox.Text = ul.ToString("#,##0.0000"); 
0

を試してみてください。このように:

private void TextBox_TextChanged(object sender, EventArgs e) 
{ 
    string value = TextBox.Text.Replace(",", ""); 
    decimal ul; 
    if (decimal.TryParse(value, out ul)) 
    { 
     TextBox.TextChanged -= TextBox_TextChanged; 
     if(ul % 1 == 0) // is the number integer 
      TextBox.Text = string.Format("{0:#,##0.#}", ul) + (TextBox.Text.EndsWith(".") ? "." : ""); 
     else 
      TextBox.Text = string.Format("{0:#,##0.0#####}", ul) ; 
     TextBox.SelectionStart = TextBox.Text.Length; 
     TextBox.TextChanged += TextBox_TextChanged; 
    } 
} 
関連する問題