即使我没有更改任何代码,TextBox1_KeyPress将不再工作

时间:2015-11-11 00:21:16

标签: c# visual-studio textbox keypress keyboard-events

最近我从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;
        }
    }

1 个答案:

答案 0 :(得分:2)

问题是char.IsPunctuation('。')将始终返回true。无疑是一个标点符号,因此事件将永远不会被处理 - 我想你可能打算写e.KeyChar == '.'char.IsPunctuation(e.KeyChar)