C#Windows窗体,不在任务栏中显示表单,但在其中显示的表单集中时使其显示在前面

Ist*_*tel 3 c# forms windows taskbar

我正在创建一个具有类似于Photoshop的界面的应用程序:多个单独的表单都有助于编辑对象.所以,我将有多个表单,其中一个是"main"(提供文件菜单,设置菜单,等等),其他表单有控件,用于编辑以主窗体打开的对象.

让我们说简单,这是一个文本编辑器,我有MainForm和StyleForm.现在,我需要的是整个应用程序在Windows任务栏中显示为一个"栏".这可以通过为StyleForm设置ShowInTaskbar为false来实现,但是如果我,比如聚焦其他应用程序,然后关注我的应用程序,只有MainForm将在其他窗口之上,StyleForm将保持隐藏在我专注的应用程序窗口下先前.

我在这里找到答案当选择一个表单但导入一个dll 时,使与程序关联的所有表单都出现在前面.也许这有一个.net解决方案?

另外,我想在任务栏中显示不同的内容,而不是MainForm的标题,这可能吗?

Tho*_*mar 11

我将第二个表单ShowInTaskBar = false设置为,设置FormBorderStyleSizableToolWindow,然后使用以下代码创建它:

public partial class Form1 : Form
{
    Form2 f2;

    public Form1()
    {
        InitializeComponent();

        f2 = new Form2();
        f2.Owner = this;  // <-- This is the important thing
        f2.Show();
    }
}
Run Code Online (Sandbox Code Playgroud)

这使得子窗体F2保持在顶部Form1并隐藏,并在隐藏和显示时显示它Form1.

编辑
哦,如果这很重要,我使用Visual Studio 2010和.NET 4 Client Profile.但是,这应该适用于其他版本.

  • @Steve:是的,但是我在这里使用它来明确地将OP指向"Owner"属性,这是解决他的问题的关键. (2认同)