防止特殊字符输入c#

时间:2014-11-02 07:54:28

标签: c#

我试图阻止用户在文本字段中输入空格键。我有这个代码。

private void FirstNameBox_KeyDown(object sender, KeyEventArgs e)
        {
            //////////MessageBox.Show(e.KeyValue.ToString());
            //Now check to see if the key pressed is a space
            if ((e.KeyValue == 32))
            {
                MessageBox.Show("Please Enter only first name.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //Stop the key registering
                e.Handled = true;
                e.SuppressKeyPress = true;
            }
            else
            {
                //allow enter
            }
        }

其中32是Space Button的关键值。但这对我来说现在不行。我在过去使用此代码只与数字条目完美配合...尝试空间但不工作。任何想法??

3 个答案:

答案 0 :(得分:1)

if (e.KeyCode == Keys.Space)
{
    // Do something here.
}

答案 1 :(得分:1)

尝试使用遮罩规则,而不是自己动手。

以下是一个例子:How to define TextBox input restrictions?

答案 2 :(得分:0)

很难说,因为你没有提供太多细节。例如:WPF / Winforms?哪个版本?为什么?你的约束是什么?等等......

在任何情况下,你不应该在任何情况下手动执行此操作......如果你正在使用WPF / MVVM,一个好的方法是使用验证。

对于上述内容,您可以查看本文中的验证部分:The big mvvm template