在KeyPress事件处理程序中验证字符

时间:2017-03-08 12:51:13

标签: c# winforms validation

我有一个带有MaskedTextBoxField的表单,我想在其中只添加十六进制值。十六进制值的长度固定为16个字符,前六个数字始终相同,并且每两个字符后有一个短划线。

我已将此字段的Mask属性设置为“\ 0 \ 0-15-4F-AA-AA-AA-AA-AA”,仅允许使用字母数字。但是这样,我可以输入所有字母,而不仅仅是“a-f”和“A-F”。

在KeyPress中,事件是以下代码:

char c = e.KeyChar;
if (('G' <= c && c <= 'Z') || ('g' <= c && c <= 'z'))
{
  e.Handled = true;
}

当我运行此代码时,应用程序会进入此部分,但即便如此,仍然会在MaskedTextBox中输入字符“G-Z”和“g-z”。 如何防止在MaskedTextBox中接受此字符?

1 个答案:

答案 0 :(得分:-1)

使用 keychar 键码,以便您可以轻松处理此代码
e.keycode;