C# 应用程序在任务栏中打开的选项卡太多

C# 应用程序在任务栏中打开的选项卡太多,c#,visual-studio,winforms,C#,Visual Studio,Winforms,我正在用C#(VisualStudio)制作一个WinForm应用程序。我遇到了一个低优先级的问题。它不会影响应用程序的工作方式。但是 在起始页上,我有一个按钮打开一个表单1,在表单1中,有一个按钮打开一个表单2,依此类推 在运行时,当我打开一个窗体时,它的父窗体不会关闭,并且每个窗体都是任务栏中一个单独的选项卡。随着层的增长,我会有超过可接受数量的标签在那里 有没有办法只有一个标签 我试过: 打开表单时添加parentForm.close()行,但这很糟糕 而不是创建另一个表单,将所有内容放在

我正在用C#(VisualStudio)制作一个WinForm应用程序。我遇到了一个低优先级的问题。它不会影响应用程序的工作方式。但是

在起始页上,我有一个按钮打开一个表单1,在表单1中,有一个按钮打开一个表单2,依此类推

在运行时,当我打开一个窗体时,它的父窗体不会关闭,并且每个窗体都是任务栏中一个单独的选项卡。随着层的增长,我会有超过可接受数量的标签在那里

有没有办法只有一个标签

我试过:

  • 打开表单时添加parentForm.close()行,但这很糟糕

  • 而不是创建另一个表单,将所有内容放在一个面板中,并使用代码显示另一个面板,但是如果有太多的层,代码就会变得非常长


  • 必须有一个更简单的方法,对吗?请给我点光

    是的,您在每种形式中都有一个名为
    ShowInTaskbar
    的属性,默认情况下该属性为
    true
    。您可以在“窗口样式”下的“窗体属性”部分中更改,也可以通过代码手动更改:

    Form2.ShowInTaskbar = false;
    Form2.ShowDialog();
    
    配置为
    false
    除第一个表单外的所有表单,以实现所需的行为

    确保您打开的表单是对话框,或者您将它们放在顶部,这样用户就永远不会遇到表单在后面并且无法关闭表单的情况

    无论如何,使用适当的表单家长配置(如果它适合您的需要),您将不需要它,因为子表单不会出现在任务栏中

    如果一个窗体在另一个窗体中设置了父窗体,则该父窗体不会显示在Windows任务栏中


    请务必查看有关此的详细信息。

    太棒了!谢谢你的信息!