【问题标题】:Textbox copy paste handling for numbers vs varchar data数字与 varchar 数据的文本框复制粘贴处理
【发布时间】:2012-09-20 03:22:27
【问题描述】:

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

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

例如:

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

剪贴板.GetText();

并检查是否

Int32.TryParse

检查数字/字符串。

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

【问题讨论】:

  • 我能知道只为非数字禁用复制粘贴的原因吗...如果是为了避免验证,我不建议您采用这种方法,因为它对用户不友好。 .. 相反,您可以使用验证器。

标签: c# .net vb.net winforms textbox


【解决方案1】:

使用 MaskedTextBox 或 NumericUpDown 代替 TextBox。

【讨论】:

    【解决方案2】:

    曾经不禁用的简单方法是只使用数字masked textbox,这样错误的输入(非数字)将被拒绝。不仅可以复制粘贴,还可以直接输入。

    【讨论】:

    • 我该怎么做?应用程序中已经有文本框,我是否可以通过设计模式更改所有内容?我不这样做。
    【解决方案3】:

    使用 TextChanged 事件并检查其中当前文本的有效性 如果您要在许多 win 表单中使用该文本框,那么我建议您创建一个 TextBox 的高级用户控件并覆盖其 TextChanged 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      相关资源
      最近更新 更多