vb.net - Form.ShowDialog() 不显示表单

标签 vb.net winforms

我遇到过一种情况,我尝试在方法中运行一行简单的代码

Dim res As DialogResult = frmOptions.ShowDialog()

但什么也没发生。该对话框将不会出现。如果我从代码中的另一个位置运行此方法,它执行得很好(即以对话框模式显示表单,然后代码执行得很好)。因此,可能是我到达此代码的方式导致了我的问题,但我无法找出问题所在。

当我暂停调试器时,代码行以绿色突出显示,但我看不到如何跨过它或进入它。

知道什么可能导致这种情况发生,或者我应该寻找什么可能导致问题?

感谢您的帮助!

最佳答案

问题在于,默认情况下设置为对话框所有者的事件窗口的 TopMost 属性设置为 true。结果,对话框显示在所有者(最顶层)窗口后面。

对话框是一种模态窗体,因为其他窗口无法获得焦点,因此程序看起来没有任何反应或工作,而实际上对话框只是隐藏在最顶层窗体的后面。

代码在其他场合起作用的原因是,当加载对话框时,事件窗口没有将其 TopMost 属性设置为 true,从而按预期显示对话框。

关于vb.net - Form.ShowDialog() 不显示表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2672482/

相关文章:

excel - VB.NET 从 excel 中获取特定的单元格值

vb.net - vb.net 中的 For 循环中的日期

c# - 可以在 .NET (C#/VB) 中打开/操作 Java Web 应用程序吗?

c# - 不通过单击设置按钮来更新 datagridview 中的所有多个选定单元格值

c# - 鼠标位置如何转换为滚动控件?

winforms - 未从 Vista 中的 machine.config 读取 appSettings

database - 比 VB.Net 的 my.settings 保存数据的替代方法

.net - 在 VB.NET 中对多维数组进行排序

c# - 如何在不使用第 3 方库的情况下登录 C#?

c# - Windows 窗体文本框错误?