【问题标题】:Modal Dialog with secondary form shown in taskbar任务栏中显示具有辅助形式的模态对话框
【发布时间】:2009-07-21 19:14:59
【问题描述】:

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

有没有办法确保模态对话框不会在辅助窗体下方绘制?最顶层的属性不好,因为它依赖于一切,甚至是与应用程序无关的东西。

【问题讨论】:

    标签: vb.net forms modal-dialog


    【解决方案1】:

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

    拥有的窗口通常不需要在 Windows 任务栏上有自己的表示,因为它们从属于其所有者。因为激活拥有的窗口会隐含地激活所有者,反之亦然,它只会使任务栏变得混乱,以便同时拥有两者的条目。因此,拥有的表单通常会将其 ShowInTaskBar 属性设置为 false。

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

    // defining an owner form in C#

    MyForm ownedForm = new MyForm();

    ownedForm.ShowInTaskbar = false;

    AddOwnedForm(ownedForm);

    ownedForm.Show();

    在您的情况下,您似乎需要为对话框设置所有者窗口。这将阻止正在呈现对话框的窗口出现在它之上。

    EDIT 应该引用我的来源:.NET Windows Forms in a Nutshell。另外,我省略了 VB.NET 代码。我已经适当地鞭打了自己,但不想费力地翻阅 PDF 文件来追踪它。

    【讨论】:

    • 我爱你。您为我们的应用程序组解决了一个主要问题 :) Kudos。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多