Winforms 表格立即关闭
窗体将闪烁打开并立即关闭。如果我使用Show()而不是ShowDialog(),它将保持打开状态并看起来很好。以下是我检查过的一些东西:Winforms 表格立即关闭,winforms,Winforms,窗体将闪烁打开并立即关闭。如果我使用Show()而不是ShowDialog(),它将保持打开状态并看起来很好。以下是我检查过的一些东西: 进入窗体关闭仅显示 System.Windows.Forms.Form.OnFormClosing System.Windows.Forms.Form.CheckCloseDialog System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafentiveMethods
- 进入窗体关闭仅显示
System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner System.Windows.Forms.Application.ThreadContext.RunMessageLoop System.Windows.Forms.Application.RunDialog System.Windows.Forms.Form.ShowDialog 在ShowDialog和窗体关闭之间
- CloseReason为“无”
- Load运行到最后,正如VisibleChanged一样(尽管已激活从未被调用)李>
- 没有任何异常被抛出的迹象
- Intellitrace没有显示任何正在发生的事情李>
- 表单关闭后,对话框结果为“取消”(表单或其设计器中没有对DialogResult的引用)
- 我没有做任何显式线程
谢谢。好吧,这可能对任何人都没有好处,但下面是我解决问题的方法: Load方法中有一行
Dim details As New frmDetails(ID, JobID, True)
details.ShowDialog()
我不知道它在那里做了什么(谢天谢地,这不是我的代码),特别是因为稍后会再次设置该值,但是去掉该行可以阻止表单神秘地关闭。想想看。我也有类似的问题。在我的例子中,这是因为没有在ShowDialog()上指定父窗口。与最上面的窗口关联的对话框,恰好是一个正在消失的组合框下拉列表
在我的例子中,我更改了ShowDialog()调用,将应用程序的主窗口用作父窗口,并解决了问题 在我的例子中,我将加载事件的
DialogResult
属性设置为Cancel
,这导致加载后对话框立即关闭。我已经将其设置为默认值None,现在我只在确实需要关闭按钮时,在按钮的单击事件中将其设置为其他值。是否在表单加载期间触发了控制事件(文本更改、验证等)。可能是关闭表单的事件之一?(仍然没有解释为什么Form.Show可以工作)您是否为此表单使用自定义构造函数?这是一个复杂的for,而且会发生很多事情,但是当我使用IntelliTrace运行时,我只看到在加载过程中生成了一个事件,该事件不调用Close(),不管怎样,我删除了该代码,问题仍然存在。此外,我在代码中找到了对Close()的所有调用,并在这些调用上设置了断点,但没有找到任何调用。正如你所说,这并不能解释Show()。我确实有定制的c-Tor,但我不确定它们会有什么不同:它们在加载之前被调用,对于Show()也是如此。
Me.Text = ""