gpt4 book ai didi

c# - ShowDialog(owner) 隐藏/不显示,即使我提供所有者 IWin32Window

转载 作者:行者123 更新时间:2023-11-30 18:40:55 25 4
gpt4 key购买 nike

请不要立即关闭问题。在以下线程中也讨论了几乎类似的问题。

  1. Windows Forms and ShowDialog problem
  2. Form.ShowDialog() or Form.ShowDialog(this)?

但是,这些并不能解决我的问题。我的开发机器上从未出现过这个问题。它发生在用户机器上,但并非总是如此。事实上,它只发生了 3 或 4 次。

当它发生时,应用程序/调用表单似乎被卡住了。如果我能猜到(因为我没有在屏幕上看到它)关闭按钮在哪里并在调用的表单上单击它,它就会关闭并且应用程序会返回到可用状态,直到它再次出现。

我的 View 封装在演示器中,所以我不是从 View 中而是通过演示器调用 ShowDialog()

MainPresenter
{
MainPresenter(IMainView view)
{
_view = view;
}


OpenSecondView()
{
var secondPresenter =_presenterFactory.Create<SecondPresenter>();
secondPresenter.Ininialize(_view);
}
}

// Initialize method in the SecondPresenter
Initialize(owner)
{
_secondView.ShowDialog(owner);
}

我正在使用此处解释的 MVP 观察演示者风格 http://www.aspiringcraftsman.com/2008/11/23/model-view-presenter-styles/

问题:

  1. 如何在我的开发机器中重现问题并修复它?
  2. 如果我使用 Show() 并设置 TopMost = true,是否可能出现此问题发生?
  3. 我应该考虑哪些可能导致此问题的事情?

如果 Show() 绝对保证不会出现问题,我将使用 Show()。我有点对 ShowDialog() 失去了信心。

任何帮助将不胜感激。


** 特定屏幕/ View 不会出现此问题。它是随机发生的。

** 对于除主窗体之外的所有窗体,ShowInTaskBar 设置为 false。

最佳答案

你可以尝试使用 TopMost = true 的形式

关于c# - ShowDialog(owner) 隐藏/不显示,即使我提供所有者 IWin32Window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com