任务栏图标打开了错误的有效表单

时间:2019-06-06 11:43:56

标签: c# forms winforms

我的应用程序有一个奇怪的行为,当在Web浏览器(或任何其他应用程序)之间导航并单击回到该应用程序时似乎打开了错误的Form?因此,用户实际上必须利用Tab窗口来打开正确的Form

例如Form1是主要形式。用户单击打开Form2的按钮。 Form1打开时,Form2隐藏在幕后。现在,如果用户转到其他应用程序,例如浏览器并单击返回到应用程序Form1,并且没有其他选项卡窗口是否无法返回到Form2

我在打开.ShowDialog()时使用了Form2属性,该属性禁用了父表单Form1,但似乎还是偶尔会这么做吗?

我还将Form2的ShowInTaskBar设置为False,以便在任务栏中为所有表单提供一个图标。

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

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

2 个答案:

答案 0 :(得分:1)

我认为您需要告诉Form2谁是其所有者表单。

赞:

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

有关更多信息,请参见System.Windows.Forms

答案 1 :(得分:0)

打开form2时,需要设置form1的mdiParent。

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

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