c# - 没有特殊字符的文本框

标签 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 事件等效?

我尝试用这个函数替换“”的不接受的字符,但它不起作用。它在我粘贴时显示任何字符,并且由于某种原因它删除了默认的初始文本“text1”:

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

最佳答案

why you are not using ShortcutsEnabled propety of the TextBox you want to prevent cut,copy and paste features.

然后您可以在 rsNameTextBox_KeyPress 中使用您的代码

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

关于c# - 没有特殊字符的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33130824/

相关文章:

c# - 如何反序列化 JSON

c# - 为什么 Convert.ToDateTime(Int64) 会失败?

c# - 在C#中将xml字符串(字段/值对)解析为Dictionary对象的快速方法

Javascript:如何从值中删除字符的出现?

Javascript 字符串 regex/.*/gm 不会一次捕获所有行

Ruby linkify 用于字符串中的 url

c# - 如何禁用单元格上的编辑模式但复选框列?

c# - 如何使按钮看起来好像被按下了?

c# - 从 TabControl 中删除排水沟?

c# - 如何指定API版本?