禁用MaskedTextbox中的一些字母键

发布于 2025-01-31 09:21:41 字数 564 浏览 4 评论 0原文

我想要一个为十六进制颜色代码制作的蒙版框架,例如“#73E57E”。这意味着仅允许0-9和AF。我的面具是“> aaaaaa”。我不知道的是如何禁用一些字母。因此,当我按下“ G”键时,什么都不会发生。例如,就像我点击“+”密钥一样,将其视为。

这是我到目前为止已经测试过的:

        private void mskBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.G)
            {
                e.Handled = true;
            }
        }
        private void mskBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.H)
            {
                e.Handled = true;
            }
        }

I want a MaskedTextBox that is made for hex color codes, such as "#73E57E" for example. This means that only 0-9 and A-F shall be allowed. My mask is ">AAAAAA". What I can't figure out is how do disable some letters. So that when I hit the "G" key, nothing shall happen. Exectly as if I hit the "+" key for example.

This is what I have tested so far:

        private void mskBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.G)
            {
                e.Handled = true;
            }
        }
        private void mskBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.H)
            {
                e.Handled = true;
            }
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云淡风轻 2025-02-07 09:21:41

关闭!尝试抑制按键。这是一种方法:

private void mskbox_OnKeyDown(object sender, KeyEventArgs e)
{
    switch (e.KeyData)
    {
        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.A:
        case Keys.B:
        case Keys.C:
        case Keys.D:
        case Keys.E:
        case Keys.F:
        case Keys.Shift | Keys.A:
        case Keys.Shift | Keys.B:
        case Keys.Shift | Keys.C:
        case Keys.Shift | Keys.D:
        case Keys.Shift | Keys.E:
        case Keys.Shift | Keys.F:
                break;
        default:
            e.Handled = true;
            e.SuppressKeyPress = true;
            break;
    }
}

Close! Try suppressing the KeyPress also. Here's one approach:

private void mskbox_OnKeyDown(object sender, KeyEventArgs e)
{
    switch (e.KeyData)
    {
        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.A:
        case Keys.B:
        case Keys.C:
        case Keys.D:
        case Keys.E:
        case Keys.F:
        case Keys.Shift | Keys.A:
        case Keys.Shift | Keys.B:
        case Keys.Shift | Keys.C:
        case Keys.Shift | Keys.D:
        case Keys.Shift | Keys.E:
        case Keys.Shift | Keys.F:
                break;
        default:
            e.Handled = true;
            e.SuppressKeyPress = true;
            break;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文