MaskedTextBox将字符限制为十六进制 - A-F0-9

时间:2017-11-05 20:11:11

标签: c# .net winforms

我尝试自定义MaskedTextBox,以便允许用户以特定格式输入文本:
__ __ __ __ __ __其中每个下划线可以是有效的十六进制字符(AF和0-9)。

目前我已将掩码属性设置为:>AA AA AA AA AA AA,这为我提供了正确的格式(由空格分隔的六组两个字符)并且我添加了KeyDown事件:< / p>

private void maskedTextBox1_KeyDown(object sender, KeyEventArgs e)
{
    switch (e.KeyCode)
    {
        case Keys.D0:
        case Keys.D1:
        case Keys.D2:
        case Keys.D3:
        case Keys.D4:
        case Keys.D5:
        case Keys.D6:
        case Keys.D7:
        case Keys.D8:
        case Keys.D9:
        case Keys.NumPad0:
        case Keys.NumPad1:
        case Keys.NumPad2:
        case Keys.NumPad3:
        case Keys.NumPad4:
        case Keys.NumPad5:
        case Keys.NumPad6:
        case Keys.NumPad7:
        case Keys.NumPad8:
        case Keys.NumPad9:
        case Keys.A:
        case Keys.B:
        case Keys.C:
        case Keys.D:
        case Keys.E:
        case Keys.F:
        case Keys.Left://navigate
        case Keys.Right://navigate
            return;
        default:
            e.SuppressKeyPress = true;
            break;
    }
}

这会将字符限制为我想要的字符。

之后我开始搜索如何验证粘贴上的输入(与正常的MaskedTextBox相同 - 通过删除无效字符)。但是我开始想我在这里重新发明轮子。

也许有更好的方法来自定义MaskedTextBox?理想情况下,我希望将掩码设置为>HH HH HH HH HH HH,这应该将字符限制为有效的十六进制(我知道当前实现不可能)

我可以在蒙版中使用自定义字符扩展MaskedTextBox吗?理想情况下,我希望将H的支持添加为十六进制字符。

0 个答案:

没有答案