为什么一种形式从 Alt-Tab 列表中消失而另一种没有?

Why does one form disappear from Alt-Tab list and the other doesn't?

我正在尝试找到一种方法,在最小化应用程序后将其从 Alt-Tab 列表中隐藏。到目前为止,我发现将表单样式设置为 SizableToolWindow 可以解决问题,但这似乎是一个不正确的解决方案。

我有两个 winform 应用程序。其中之一应该只有托盘图标可见,但它仍然有主窗体。通过在 Form_Shown 方法中执行 this.Hide() 解决了 Alt-Tab 可见性问题。另一个应用程序没有 Form_Shown,但它有 Form1_SizeChanged 代码的方法:

this.Hide();
this.ShowInTaskbar = false;

…由于某种原因,它的结果与第一个应用程序不同。我只能通过将主窗体的样式设置为 SizableToolWindow 来将它从 Alt-Tab 列表中隐藏起来。虽然它有效,但我想知道为什么所谓的正确方法不起作用。

this.ShowInTaskbar = false 放在 this.Hide() 之前应该会从 Alt-Tab 列表中隐藏表单。显然,您必须在隐藏表单之前设置可见性选项,否则它不会从 Alt-Tab 中隐藏 window。这样就不需要将表单样式设置为 ToolWindow。至于"why",我就不知道了。