【发布时间】:2013-12-10 12:16:34
【问题描述】:
我试图在应用程序启动之前显示一个表单并获取它的DialogResult,所以我只是创建它并使用ShowDialog(因为Application.Run 的返回值是无效的)。
我担心的是它可能会被当时可能显示的其他表单错误地“劫持”。显然,不是通过这个应用程序。参见What is the meaning of Form.Show(null)?,不建议使用ShowDialog 的无参数重载。
我已经测试并看到表单的Owner 属性为空。但会一直如此吗?或者我应该创建一个表单并将其用作所有者而不显示它?这似乎是一个奇怪的解决方案,但从逻辑上讲它应该避免任何问题。还是会推出新的?
【问题讨论】:
-
被应用中的表单劫持?如何? Application.Run 尚未运行...
-
你能提供一个你害怕的场景吗?
-
@rene 正如我所说的“显然不是这个应用程序”。
-
@Sinatr 在特定情况下在另一个模态对话框上显示模态对话框时,我已经遇到过这个问题,并且对话框意外关闭。我不记得确切的细节。我花了很长时间才发现问题。从那时起 - 我总是指定所有者。
-
您不能获取桌面窗口并作为所有者提供它吗?