我有一個組合框,我想允許用戶輸入數字,但不允許他們輸入字母字符。
我的問題是這些數字可以是十進制的,所以我需要允許用戶輸入.
我用過char.IsSymbol,但它似乎沒有做我想做的事。
private void DaySelection_ComboBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && !char.IsSymbol(e.KeyChar))
{
e.Handled = true;
}
}
uj5u.com熱心網友回復:
你最好的選擇可能是有一個特定的允許字串列,并檢查它。您可以為此使用字串:
static readonly string _allowedNumericCharacters = "-0123456789.";
private void DaySelection_ComboBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!_allowedNumericCharacters.Contains(e.KeyChar))
{
e.Handled = true;
}
}
你需要千位分隔符嗎?如果是這樣,您需要添加,到字串中。
請注意,您可能需要針對不同的語言環境調整該字串。對于不同的語言環境,小數點和千位分隔符是不同的。
uj5u.com熱心網友回復:
你也可以使用正則運算式來做到這一點,就像簡單的一樣
^[0-9.-]*$
這將只允許您輸入 0 到 9 之間的任何字符、點或連字符,然后您只需要檢查您的字串是否與此匹配。這應該給出與上述答案相同的結果。
此外,我相信最好在按鍵時測驗整個字串而不是單個字符,這只會為諸如將文本復制/粘貼到表單中的內容增加額外的保護
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/518614.html
標籤:C#形式
