1

为什么当我第一次来到我的窗口时,它是一个用户控件和组合框设置为空白的表单。我可以毫无问题地单击取消并关闭窗口。但是,如果我触摸组合框,然后将其留空并尝试单击取消,取消事件不会触发?

4

4 回答 4

4

你真正需要的是

 e.Cancel = False;

在您的 FormClosing 事件中。

于 2014-05-22T18:19:13.607 回答
2

我不得不使用 container.AutoValidate = .EnableAllowFocusChange

于 2012-12-23T21:31:29.270 回答
0

罗德的回答导致了解决方案。如果表单(错误提供者的容器)AutoValidate-property 设置为EnableAllowFoucsChange,则处理按钮事件,Click现在可以在 -Event 中检查表单是否包含无效子项:

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    If Not ValidateChildren() Then Exit Sub
End sub
于 2014-10-03T09:39:43.463 回答
0

我有同样的问题,但后来我解决了

  • 将按钮的 CausesValidation 属性设置为 False。
  • 重新设置窗体上的所有控件。
  • 关闭表格。

    while (Controls.Count > 0)
          {
              Controls[0].Dispose();
          }
          this.Close();
    

我将此代码添加到 Button_Click() 事件以及 From_Closing 事件中。问候, Kshitij Thube

于 2014-02-18T11:06:59.777 回答