2014-03-26 27 views
0
private void maskedTextBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (!char.IsControl(e.KeyChar) 
    && !char.IsDigit(e.KeyChar) 
    && e.KeyChar != ',') 
    { 
     e.Handled = true; 
    } 
} 

我有一個蒙面文本框。我只讓用戶輸入數值和「,」逗號。阻止MaskedTextBox中的2個連續逗號

如果用戶連續輸入2個逗號,如,,我想刪除最後一個逗號。

用戶只能輸入1個逗號。

例如:

TextBox100,00如果用戶輸入該值就像100,00,,00我想改變這100,00,00

如何在KeyPress事件中連續輸入2個逗號來刪除第二個逗號?

+1

你能不能做一個'代替( 「,, 」「」)的字符串'時,你會用嗎?否則使用一些邏輯來跟蹤最後輸入的字符 –

+0

我需要使用它在按鍵事件 – user3409638

+2

'if(e.KeyChar ==','&& maskedTextBox1.Text.EndsWith(「,」))' ? –

回答

1
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    // you might also want to check if the textBox1 is empty or whatever else. 
    if (e.KeyChar == ',' && textBox1.Text.EndsWith(",")) 
    { 
     e.Handled = true; 
    } 
} 
1

試試這個:

int sequenceCount = 0; 
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == ',') 
     sequenceCount++; 
    else 
     sequenceCount = 0; 

    if ((!char.IsControl(e.KeyChar) 
    && !char.IsDigit(e.KeyChar) 
    && e.KeyChar != ',') || sequenceCount>1) 
    { 
     e.Handled = true; 
    } 
}