【问题标题】:.Net winform property says Visible but I can't see it.Net winform 属性显示可见但我看不到
【发布时间】:2023-03-20 17:59:02
【问题描述】:

我有一个奇怪的情况,我从我的应用程序中打开一个表单,将其隐藏,当我再次尝试显示它时,Visible 属性显示为 true,TopMost 也为 true,位置正确,但我不能看见。

有什么想法可以在哪里以及看什么来解决问题吗?

(注意:事件处理程序/委托可能存在问题,但我不太确定从哪里开始)

更新 - 我将 ShowInTaskbar 设置为 true - 我在任务栏中看到它,但无法将其置于前面,并且右键单击任务栏按钮什么也不做。 Alt-Tab 也不行。不会出现在任务管理器中。

尝试过 Crack.NET,但找不到任何让我“进入”对象实例的属性。 .Net Memory Profiler 对此没有帮助,我相信,Winspector 我不知道该怎么做。

UPDATE2 - 我撒谎了,它不是直接的 WinForm,我是从一个自定义类继承而来的,而后者又从 WinForm 继承而来。我尝试直接从 Form 继承,它可以工作。所以现在我必须去查看自定义类的代码。我会及时通知你...

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    会不会超出屏幕边界? (即搬出)。

    使用 Spy++ 或 Winspector 并尝试找到这个丢失的窗口并准确查看它隐藏的位置/原因。

    【讨论】:

    • 我不这么认为 - 如果该位置无论如何都可以信任的话。
    【解决方案2】:

    好的,成功了。

    自定义表单类有一个“酷”的功能 - 它淡入淡出。

    但显然只有一次。

    所以我看不到表格的原因是不透明度为0!

    【讨论】:

    • 哈哈,很高兴你发现了这个问题 :)
    • 呃,代码属于 DailyWTF - 使用 Timer 淡入,使用 while+Thread.Sleep 淡出。仅在 ShowDialog 时淡入,但在关闭和隐藏时淡出。 (所以第二次打开 Show 显然不会淡出...)
    【解决方案3】:

    父窗口是否可见?

    Windows 有关于不可见窗口子级的规则,无论它们自己的可见性如何。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-16
      • 2011-03-29
      • 2014-01-11
      • 2012-08-23
      • 2021-11-22
      • 2019-12-30
      • 2012-05-30
      相关资源
      最近更新 更多