【问题标题】:MaskedTextBox and hexadecimalMaskedTextBox 和十六进制
【发布时间】:2011-06-08 13:41:40
【问题描述】:

如何创建一个接受十六进制和空格的 MaskedTextBox?

我在 .NET 中使用 Windows 窗体。

【问题讨论】:

    标签: c# .net winforms maskedtextbox


    【解决方案1】:

    简单:你不能。

    不适用于标准MaskedTextBox

    【讨论】:

    • MaskedTextBox 上没有验证吗?甚至 Java AWT 都有!
    • 我猜你可以尝试拦截KeyPress 事件并检查被按下的字符是否是有效的十六进制字符,但是如果你这样做,你可以用一个简单的文本框来做。
    • 我支持这个 KeyPress 拦截想法。您可以使用简单的文本框并将字符与正则表达式 [0-9a-fA-F] 进行匹配。如果不匹配,将 e.Handled 设置为 true 以取消击键。
    【解决方案2】:

    我使用 KeyDown 事件解决了我的问题。 KeyEventArgs.SuppressKeyPress 将完全处理我想要的!

    【讨论】:

      【解决方案3】:

      您可以尝试将输入与 Textbox.Validating 事件处理程序中的正则表达式进行匹配。

      我还使用了自己在 Stack Overflow 问题中发布的“RegexMaskedTextBox”解决方案Restricting the characters in the text box

      【讨论】:

      • 验证事件威胁到任何输入键?我想忽略其他键。
      • 对验证事件进行标准正则表达式匹配将在事后进行,因此不会忽略键。查看我刚刚发布的链接,我认为这可能会满足您的需求,或者至少让您走上正确的道路。
      猜你喜欢
      • 2011-12-09
      • 2021-03-22
      • 2014-10-30
      • 2018-07-26
      • 1970-01-01
      • 2022-11-16
      • 2014-08-24
      • 2014-04-20
      相关资源
      最近更新 更多