我有一个蒙面文本框(注意:没有正常的Texbox,我搜索了网页,发现只有与普通文本框相关的文章):
this.maskedTextBox1 = new System.Windows.Forms.MaskedTextBox();
this.maskedTextBox1.Location = new System.Drawing.Point(12, 30);
this.maskedTextBox1.Mask = "??????????????????????????"; //Just as example
this.maskedTextBox1.Name = "maskedTextBox1";
this.maskedTextBox1.Size = new System.Drawing.Size(260, 20);
this.maskedTextBox1.TabIndex = 0;
this.maskedTextBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.maskedTextBox1_KeyPress);
我想阻止对casue的输入我想自己处理输入。问题是,这似乎是不可能的。 我试图将e.Handled设置为true,但它完全忽略了它。
private void maskedTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
有没有办法阻止输入屏蔽的texbox?也有人知道为什么设置e.Handled = trues没有效果吗?
非常感谢提前
答案 0 :(得分:2)
您可以尝试KeyDown
事件并设置SuppressKeyPress = true;
:
private void maskedTextBox1_KeyDown(object sender, KeyEventArgs e){
e.SuppressKeyPress = true;
}
答案 1 :(得分:-1)
我遇到了同样的问题。
private void maskedTextBox1_KeyDown(object sender, KeyEventArgs e){
e.SuppressKeyPress = true;
}
在这种情况下,您将获得关键扫描代码,其中还包括“移动”键。
我发现如果你使用普通的KeyPress
函数,而不是设置:
e.Handled = true
然后
e.KeyChar = (char) 0x00;
现在你得到了你所要求的功能,我得到了我的
示例:(带分色的十六进制输入):
// mtxtBoxKey.Mask = @"CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC";
private void mtxtBoxKey_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar >= 'a' && e.KeyChar <= 'f')
e.KeyChar = (char)(e.KeyChar - ' ');
if (!((e.KeyChar == 0x08) || (e.KeyChar >= '0' && e.KeyChar <= '9') || (e.KeyChar >= 'A' && e.KeyChar <= 'F')))
e.KeyChar = (char) 0x00;
}