2014-05-07 59 views
1

我有一個數字文本框分開這樣的數字(###,###,###)並使用此代碼:使數字文本框像(###,###,###)

private void txtnum2_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (!char.IsControl(e.KeyChar) 
     && !char.IsDigit(e.KeyChar) 
     && e.KeyChar != '.') 
    { 
     e.Handled = true; 
     txtnum2.Text += Convert.ToString(e.KeyChar); 
    } 

    if (e.KeyChar == '.' 
     && (sender as TextBox).Text.IndexOf('.') > -1) 
    { 
     e.Handled = true; 
    } 

    txtnum2.Text = Regex.Replace(txtnum2.Text, "[^.0-9]", ""); 


     for (int i = 1, j = 0; i < 10; ++i) 
     { 
      try 
      { 
       txtnum2.Text = txtnum2.Text.Insert(txtnum2.Text.Length - ((3 * i) + j), ","); 
       ++j; 
      } 
      catch { } 
     } 

但是在第一個「,」之後,其他數字轉到文本框的第一個。

+5

您正在使用的WinForms?如果是這樣 - 看看'MaskedTextBox':http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox(v=vs.110).aspx –

+0

請考慮upvoting和標記答案爲那些幫助或解決您的問題的解決方案。如果他們沒有完全達到目標,請隨時留下評論。 – paqogomez

回答

0

在的WinForms(如@drew_w指出),你可以使用一個MaskedTextBox

maskedTextBox1.Mask = "###,###,###"; 
maskedTextBox1.KeyDown += new KeyEventHandler(txtnum2_KeyPress); 

在WPF中,你可能看至this blog posttranslation