2017-08-09 122 views
-5

我在窗體中有一個ComboBox元素。它加載一個默認集合。 用戶可以手動輸入任何值。我怎樣才能防止用戶輸入字母字符?如何在Combobox C#中禁用輸入字母符號?

我想只允許數字輸入,或者完全禁用此選項。

+0

參見[如何提出一個很好的問題(https://stackoverflow.com/help/how-to-ask) – KiwiPiet

+0

你嘗試過什麼? SO善於幫助您突破技術挑戰。但是,如果給你提供關於事物的教程,它的設置並不是很好,因爲它更像是Q&A結構。 – code4life

回答

-1

您可以使用正則表達式作爲一個例子 在Combobox_TextChanged事件如果字符內的比賽中取出

private void comboBox1_TextChanged(object sender, EventArgs e) 
{ 
    string rex=comboBox1.Text; 
    Regex regex = new Regex(@"^\d$"); 


    if (regex.IsMatch(compare)) 
    { 
     rex= Regex.Replace(rex, @"(?<=\d),(?=\d)|[.]+(?=,)[A-Z]", ""); 
    } 
    comboBox1.Text=rex; 
    } 

這可以幫助你。 Regex for numbers only

+1

似乎沒有回答這個問題(顯示如何檢查字符串,但沒有涉及如何防止在組合框中輸入任何內容的winforms問題) –

+0

什麼時候該做?在哪一個事件? – Daniel

+0

第二章表達什麼? – Daniel

1

只允許數字

其實,你並不需要的正則表達式這個簡單的要求。

private void comboBox1_TextChanged(object sender, EventArgs e) 
{ 
    if (comboBox1.Text.Any(x => !char.IsDigit(x))) 
    { 
     comboBox1.Text = string.Concat(comboBox1.Text.Where(char.IsDigit)); 
     comboBox1.Select(comboBox1.Text.Length, 0); 
    } 
} 

您可能還需要添加一個System.Media.SystemSounds.Beep.Play();

相關問題