C# errorprovider赢得';在我清除错误之前,不要让我退出表单
为什么当我第一次来到我的窗口时,它是一个用户控件和组合框设置为空的窗体。我可以单击“取消”而不出现任何问题,窗口将关闭。但是,如果我触摸组合框,然后将其留空并尝试单击“取消”,则取消事件不会触发?我必须使用container.AutoValidate=.enablAllowFocuschange我必须使用container.AutoValidate=.enablAllowFocuschange我也有同样的问题,但后来我通过C# errorprovider赢得';在我清除错误之前,不要让我退出表单,c#,winforms,C#,Winforms,为什么当我第一次来到我的窗口时,它是一个用户控件和组合框设置为空的窗体。我可以单击“取消”而不出现任何问题,窗口将关闭。但是,如果我触摸组合框,然后将其留空并尝试单击“取消”,则取消事件不会触发?我必须使用container.AutoValidate=.enablAllowFocuschange我必须使用container.AutoValidate=.enablAllowFocuschange我也有同样的问题,但后来我通过 将按钮的CausesValidation属性设置为False 重新设置
- 将按钮的CausesValidation属性设置为False
- 重新设置窗体上的所有控件
- 关闭表单
while (Controls.Count > 0) { Controls[0].Dispose(); } this.Close();
Kshitij Thube我也有同样的问题,但后来我通过
- 将按钮的CausesValidation属性设置为False
- 重新设置窗体上的所有控件
- 关闭表单
while (Controls.Count > 0) { Controls[0].Dispose(); } this.Close();
Kshitij Thube你真正需要的是
e.Cancel = False;
在窗体关闭事件中。您真正需要的是
e.Cancel = False;
在窗体关闭事件中。罗德的回答引出了解决方案。 如果表单(错误提供程序的容器)
AutoValidate
-属性设置为enableAllowFoucChange
,按钮事件将被处理,并且在单击事件中,现在可以检查表单是否有无效子项:
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
If Not ValidateChildren() Then Exit Sub
End sub
罗德的回答引出了解决方案。
如果表单(错误提供程序的容器)AutoValidate
-属性设置为enableAllowFoucChange
,按钮事件将被处理,并且在单击事件中,现在可以检查表单是否有无效子项:
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
If Not ValidateChildren() Then Exit Sub
End sub
..