代码之家  ›  专栏  ›  技术社区  ›  jgallant

具有任务栏中显示的辅助窗体的模式对话框

  •  3
  • jgallant  · 技术社区  · 15 年前

    我的应用程序有两个窗体,它们在Windows任务栏中可见。当主窗体上弹出模式对话框时,将锁定辅助窗体。但是,当用户单击任务栏上的辅助窗体时,它会显示在模式对话框上,并且基本上被冻结。

    是否有方法确保模式对话框不在辅助窗体下绘制?最顶层的属性是不好的,因为它可以利用所有的东西,甚至与应用程序无关的东西。

    1 回复  |  直到 15 年前
        1
  •  4
  •   Mike Hofer    15 年前

    您的问题可能是您没有为该对话框指定所有者:

    拥有的Windows通常不需要自己在Windows任务栏上的表示,因为它们是从属于其所有者的。因为激活一个拥有的窗口会隐式地激活所有者,反之亦然,所以它只会使任务栏上的条目变得杂乱无章。所以所拥有的窗体通常将其ShowIntaskBar属性设置为false。

    以下代码片段(在VB和C中)显示正在创建、拥有和显示的新表单:

    // defining an owner form in C#

    MyForm ownedForm = new MyForm();

    ownedForm.ShowInTaskbar = false;

    AddOwnedForm(ownedForm);

    ownedForm.Show();

    在您的案例中,您似乎需要设置对话框的所有者窗口。那会阻止窗户 呈现 对话框从出现 结束 它。

    编辑 应该引用我的资料来源: .NET Windows Forms in a Nutshell . 另外,我省略了vb.net代码。我已经适当地鞭打了自己,但不想涉过PDF文件来跟踪它。