【问题标题】:Taskbar icon opens the wrong Active form任务栏图标打开错误的活动表单
【发布时间】:2019-06-06 11:43:56
【问题描述】:

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

例如Form1 是主要形式。用户单击打开Form2 的按钮。 Form1 隐藏在幕后,Form2 打开。现在,如果用户转到不同的应用程序,例如浏览器并点击返回应用程序Form1 会显示,没有Tab 窗口就没有其他方法可以返回Form2

我在打开Form2 时使用了.ShowDialog() 属性,它禁用了父表单Form1 但似乎仍然偶尔会这样做?!?

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

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

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

【问题讨论】:

    标签: c# forms winforms


    【解决方案1】:

    我认为你需要告诉 Form2 它的所有者表单是谁。

    像这样:

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

    更多信息请参见System.Windows.Forms

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 没有迹象表明 OP 有 MDI Parent。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 2019-09-04
      • 1970-01-01
      • 2011-04-28
      相关资源
      最近更新 更多