最近我从Visual Studio express 2013切换到Visual Studio Community 15。 当我用这段代码来运行我的表单时,该代码应该阻止字符输入,只允许数字和小数(。)到文本框并且它运行完美,但是一旦我切换到社区15,它就不再阻止字符输入。为什么?只要是数字或小数,处理设置为false?
private void WeeklyCheckTxtBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar) || char.IsPunctuation('.'))
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
答案 0 :(得分:2)
问题是char.IsPunctuation('。')将始终返回true。无疑是一个标点符号,因此事件将永远不会被处理 - 我想你可能打算写e.KeyChar == '.'
或char.IsPunctuation(e.KeyChar)
。