没有特殊字符的文本框

时间:2015-10-14 16:30:40

标签: c# regex winforms textbox

我希望我的文本框永远不会接受特殊的字符。 只接受空格,数字和字母。 我找到了Presskey事件的代码:

private void rsNameTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = e.KeyChar != (char)Keys.Back && !char.IsSeparator(e.KeyChar) && !char.IsLetter(e.KeyChar) && !char.IsDigit(e.KeyChar);
        }

但是当有人在文本框中粘贴某些东西时它不起作用。如何使textChanged事件等效?

我尝试用#34;"替换未被接受的字符。使用此功能但它不起作用。当我粘贴时显示任何字符,并且由于某种原因它删除了默认的初始文本" text1":

 private void rsNameTextBox_TextChanged(object sender, EventArgs e)
        {
            Regex reg = new Regex(@"^[\s\dA-Za-z]+$");
            rsNameTextBox.Text = reg.Replace(rsNameTextBox.Text,"");
        }

1 个答案:

答案 0 :(得分:0)

  

为什么你没有使用ShortcutsEnabled TextBox你的rsNameTextBox_KeyPress   想要防止剪切,复制和粘贴功能。

然后您可以在 if(preg_match('/[^a-z\-0-9]/i', $value)) { echo "<META HTTP-EQUIV='Refresh' Content='0; URL=http://$ponka/name/error'>"; }

中使用您的代码

Here是如何防止窗口表单应用程序中的粘贴功能的链接。