在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
}

谢谢你的帮助

在windows窗体中单击OK按钮时,如何使焦点回到窗体上

这段代码中没有任何东西会关闭表单。因此,罪魁祸首一定在这段代码之外。

你是否将OK按钮的dialgresult属性设置为dialgresult .OK?这就解释了为什么表格要关闭了。我敢说,如果你在按钮上设置了对话结果,这就是发生的事情——没有办法在代码中否决它。

在这种情况下,你需要回到设计器并将按钮的dialgresult设置回None。然后在你的btnOk_Click方法的结尾,一旦你验证了所有的输入,并决定它是安全的关闭对话框,添加一行设置你的窗体的dialgresult属性为OK。

移除按钮的对话sult属性设置为None