我在Windows窗体中有一个ComboBox
元素。它加载默认集合。
用户可以手动输入任何值。如何阻止用户输入字母字符?
我想只允许输入数字,或者完全禁用此选项。
答案 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