在windows窗体中单击OK按钮时,如何使焦点回到窗体上
本文关键字:窗体 何使 焦点 windows 单击 OK 按钮 | 更新日期: 2023-09-27 18:16:53
我有一个windows窗体与多个控件和确定和取消按钮。在OK按钮的Click事件处理程序中,它检查表单上是否有错误。我需要表单保持打开,如果有错误。但是下面的代码不能工作。如果有错误,它将关闭表单并返回给调用者。我有下面两行代码来调用和显示表单。
PtForm paymentForm = new PtForm();
ptForm.ShowDialog();
private void btnOk_Click(object sender, EventArgs e)
{
this.ValidateChildren(ValidationConstraints.Visible);
string ErrorString = GetValidationErrors();
MessageBox.Show(ErrorString, "Errors");
if (!string.IsNullOrEmpty(ErrorString))
{
return;
}
//Processing
}
谢谢你的帮助
这段代码中没有任何东西会关闭表单。因此,罪魁祸首一定在这段代码之外。
你是否将OK按钮的dialgresult属性设置为dialgresult .OK?这就解释了为什么表格要关闭了。我敢说,如果你在按钮上设置了对话结果,这就是发生的事情——没有办法在代码中否决它。
在这种情况下,你需要回到设计器并将按钮的dialgresult设置回None。然后在你的btnOk_Click
方法的结尾,一旦你验证了所有的输入,并决定它是安全的关闭对话框,添加一行设置你的窗体的dialgresult属性为OK。
移除按钮的对话sult属性设置为None