保留ShowDialog结果后打开的对话框

时间:2010-09-20 11:27:44

标签: c# winforms modal-dialog

我正在打开一个模态对话框,要求用户填写某些字段。

if(dlgUserDetail.ShowDialog() == DialogResult.OK)
{ 

}

单击“确定”后,控件将转到父表单,我将验证用户输入。

如果验证失败,我希望使用旧值保持对话框打开。由于它是模态对话框,因此表单将被关闭。

这似乎是一个常见的问题,因为我在网上看到很多讨论,但我无处可寻找解决方案。

请让我知道如何解决这个问题。感谢。

此致 ArunDhaJ

2 个答案:

答案 0 :(得分:1)

一种解决方案是将验证逻辑放入dlgUserDetail表单并在OnClosing事件上调用它。如果验证失败,则阻止表单关闭。

答案 1 :(得分:1)

如果是您的对话框,您可以添加一个名为CancelEventArgsValidate的{​​{1}}事件(类似于OpenFileDialog中的InputOk)并让您的主表单检查输入一个方法。在对话框中调用FileOk之前,添加'onValidate`调用以检查输入是否有效。

DialogResult = DialogResult.OK