C# 任务栏图标打开错误的活动窗体

C# 任务栏图标打开错误的活动窗体,c#,forms,winforms,C#,Forms,Winforms,我的应用程序有一种奇怪的行为,当在web浏览器(或任何其他应用程序)之间导航并单击返回应用程序时,似乎打开了错误的表单?因此用户必须使用选项卡窗口打开正确的表单 例如,Form1是主要形式。用户单击一个按钮,打开Form2Form1隐藏在场景后面。现在,如果用户转到另一个应用程序(例如浏览器)并单击返回到应用程序,则会显示Form1,没有选项卡窗口,没有其他方法返回到Form2 我在打开Form2时使用了.ShowDialog()属性,该属性禁用了父窗体Form1,但似乎仍然偶尔这样做 我还将F

我的应用程序有一种奇怪的行为,当在web浏览器(或任何其他应用程序)之间导航并单击返回应用程序时,似乎打开了错误的
表单
?因此用户必须使用
选项卡
窗口打开正确的
表单

例如,
Form1
是主要形式。用户单击一个按钮,打开
Form2
<当
Form2
打开时,code>Form1隐藏在场景后面。现在,如果用户转到另一个应用程序(例如浏览器)并单击返回到应用程序,则会显示
Form1
,没有选项卡窗口,没有其他方法返回到
Form2

我在打开
Form2
时使用了
.ShowDialog()
属性,该属性禁用了父窗体
Form1
,但似乎仍然偶尔这样做

我还将Form2的
ShowInTaskBar
设置为
False
,这样所有表单的任务栏中都有一个图标

不确定是什么导致这种行为发生

private void button1_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    form2.ShowDialog();
}

我认为您需要告诉Form2它的所有者是谁

像这样:

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 form2 = new Form2();
        form2.Owner = this;
        form2.ShowDialog();
    }

有关详细信息,请参见打开form2时,需要设置form1的父级

首先,在属性中将form1设置为“isMdiParent”为“true”,然后使用以下代码:

private void button1_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    form2.MdiParent = this;
    form2.Show();
}

没有迹象表明OP有MDI父级。