如何在Combobox C#中禁用输入字母符号?

时间:2017-08-09 20:51:19

标签: c# winforms c#-4.0

我在Windows窗体中有一个ComboBox元素。它加载默认集合。 用户可以手动输入任何值。如何阻止用户输入字母字符?

我想只允许输入数字,或者完全禁用此选项。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:-2)

您可以使用Regex作为示例 在Combobox_TextChanged事件中,如果charcter匹配删除它

 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