禁用 MaskedTextBox 中的一些字母键
Disable some letter keys in MaskedTextBox
我想要一个为十六进制颜色代码制作的 MaskedTextBox,例如“#73E57E”。这意味着只允许使用 0-9 和 A-F。我的面具是“>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;
}
}
关闭!也尝试抑制 KeyPress。这是一种方法:
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;
}
}
我想要一个为十六进制颜色代码制作的 MaskedTextBox,例如“#73E57E”。这意味着只允许使用 0-9 和 A-F。我的面具是“>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;
}
}
关闭!也尝试抑制 KeyPress。这是一种方法:
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;
}
}