Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数字与varchar数据的文本框复制粘贴处理_C#_.net_Vb.net_Winforms_Textbox - Fatal编程技术网

C# 数字与varchar数据的文本框复制粘贴处理

C# 数字与varchar数据的文本框复制粘贴处理,c#,.net,vb.net,winforms,textbox,C#,.net,Vb.net,Winforms,Textbox,我的winforms应用程序中有数千个文本框 我想为文本框禁用数字值的复制粘贴,因为文本框只允许数字(整数) 例如: Employee number: 1234567 我尝试将false设置为文本框的ShortcutsEnabled属性,它完全停止禁用整个复制和粘贴,我不希望这样,我希望允许数字的复制粘贴 我可以从剪贴板中获取数据 Clipboard.GetText() 并检查 Int32.TryParse 检查数字/字符串 有没有什么通用的方法可以代替为每个代码固定代码或使用正则表达式 一个

我的winforms应用程序中有数千个文本框

我想为文本框禁用数字值的复制粘贴,因为文本框只允许数字(整数)

例如:

Employee number: 1234567
  • 我尝试将false设置为文本框的ShortcutsEnabled属性,它完全停止禁用整个复制和粘贴,我不希望这样,我希望允许数字的复制粘贴
  • 我可以从剪贴板中获取数据
  • Clipboard.GetText()

    并检查

    Int32.TryParse

    检查数字/字符串


    有没有什么通用的方法可以代替为每个代码固定代码或使用正则表达式

    一个根本不禁用的简单方法是只使用数字,这样错误输入(非数字)将被拒绝。不仅用于复制粘贴,也用于直接输入。

    使用MaskedTextBox或NumericUpDown代替文本框。

    使用TextChanged事件并检查其中当前文本的验证
    如果您打算在许多win表单中使用textbox,那么我建议您创建一个textbox的高级用户控件,并覆盖其TextChanged方法。

    我该怎么做?应用程序中已经有文本框,我是否通过设计模式更改所有内容?我不知道为什么。我能知道为什么禁用复制粘贴只针对非数字。。。如果是为了避免验证,我不建议您使用这种方法,因为它不会对用户友好。。。相反,您可以使用验证器进行相同的验证。