.net 停止将键盘事件传播到父窗体
我有一个特殊的文本框,应该在输入时进行验证 在此验证中,如果表单定义了AcceptButton,则应提交表单 在下面的代码中,我有两个文本框:一个是普通文本框,另一个是myTextBox,它在回车时进行自我验证(双击表单时间查看): myTextBox的可见性反映了“已验证”的事实,但这没有帮助,因为在OK按钮中,单击myTextBox 1已不可见.net 停止将键盘事件传播到父窗体,.net,winforms,.net,Winforms,我有一个特殊的文本框,应该在输入时进行验证 在此验证中,如果表单定义了AcceptButton,则应提交表单 在下面的代码中,我有两个文本框:一个是普通文本框,另一个是myTextBox,它在回车时进行自我验证(双击表单时间查看): myTextBox的可见性反映了“已验证”的事实,但这没有帮助,因为在OK按钮中,单击myTextBox 1已不可见 理想情况下,在myTextBox验证之后,我希望停止父窗体上的Enter键消息传播。可能吗?如果没有,我应该如何在不验证表单的情况下验证MyTex
理想情况下,在myTextBox验证之后,我希望停止父窗体上的Enter键消息传播。可能吗?如果没有,我应该如何在不验证表单的情况下验证MyTextBox?我希望我正确理解您的问题。如果处理事件,是否尝试在ProcessCmdKey覆盖中返回TRUE?返回true会告诉事件系统事件已被消耗,并阻止进一步处理,例如:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == Keys.Enter) {
Console.WriteLine("!!! MyTextBox_Validation !!!");
this.Visible = false;
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
我希望我正确理解你的问题。如果处理事件,是否尝试在ProcessCmdKey覆盖中返回TRUE?返回true会告诉事件系统事件已被消耗,并阻止进一步处理,例如:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == Keys.Enter) {
Console.WriteLine("!!! MyTextBox_Validation !!!");
this.Visible = false;
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}