Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 停止将键盘事件传播到父窗体_.net_Winforms - Fatal编程技术网

.net 停止将键盘事件传播到父窗体

.net 停止将键盘事件传播到父窗体,.net,winforms,.net,Winforms,我有一个特殊的文本框,应该在输入时进行验证 在此验证中,如果表单定义了AcceptButton,则应提交表单 在下面的代码中,我有两个文本框:一个是普通文本框,另一个是myTextBox,它在回车时进行自我验证(双击表单时间查看): myTextBox的可见性反映了“已验证”的事实,但这没有帮助,因为在OK按钮中,单击myTextBox 1已不可见 理想情况下,在myTextBox验证之后,我希望停止父窗体上的Enter键消息传播。可能吗?如果没有,我应该如何在不验证表单的情况下验证MyTex

我有一个特殊的文本框,应该在输入时进行验证

在此验证中,如果表单定义了AcceptButton,则应提交表单

在下面的代码中,我有两个文本框:一个是普通文本框,另一个是myTextBox,它在回车时进行自我验证(双击表单时间查看):

myTextBox的可见性反映了“已验证”的事实,但这没有帮助,因为在OK按钮中,单击myTextBox 1已不可见


理想情况下,在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); 
}