0

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

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

例如:

Employee number: 1234567
  1. 我尝试将文本框的 ShortcutsEnabled 属性设置为 false ,它完全停止禁用整个复制和粘贴,这是我不想要的,我想允许复制粘贴数字。
  2. 我可以从剪贴板获取数据

Clipboard.GetText();

并检查是否

Int32.TryParse

检查数字/字符串。

我可以使用任何通用方法来代替每个代码的固定代码或使用正则表达式吗?

4

3 回答 3

1

使用 MaskedTextBox 或 NumericUpDown 而不是 TextBox。

于 2012-09-20T04:14:34.773 回答
0

曾经根本不禁用的简单方法是仅使用数字屏蔽文本框,这样错误的输入(非数字)将被拒绝。不仅适用于复制粘贴,也适用于直接输入。

于 2012-09-20T03:24:42.743 回答
0

使用 TextChanged 事件并检查其中当前文本的验证,如果您要在许多 win 表单中使用该文本框,所以我建议您创建 TextBox 的高级用户控件并覆盖其 TextChanged 方法。

于 2012-09-20T05:43:12.443 回答