窗口始终位于应用程序的顶部

时间:2016-01-05 07:24:07

标签: c# winforms

让我的winforms窗口始终保持最佳状态我可以使用:

TopMost = true;

但这将使窗口始终保持最佳状态。我希望它只在应用程序中保持最佳状态。因此,当我最小化我的应用程序或更改应用程序时,我不希望它再次保持最佳状态。

2 个答案:

答案 0 :(得分:4)

我认为你正在寻找Form.Owner财产

  

要使表单由另一个表单拥有,请为其所有者属性分配对将成为所有者的表单的引用。

     

当表单由另一个表单拥有时,它将被所有者表单关闭或隐藏。例如,考虑一个名为Form2的表单,该表单由名为Form1的表单拥有。如果Form1已关闭或最小化,Form2也将关闭或隐藏。所有窗体也不会在其所有者表单后面显示。您可以使用窗口的自有窗体,例如查找和替换窗口,当选择所有者窗体时,窗口不应该消失。

如果您没有从“应用程序窗口”显示子窗体,访问应用程序窗口(a.k.a主窗体)的最简单方法是使用类似这样的内容

static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(MainForm = new MyAppForm());
    }
    public static MyAppForm MainForm { get; private set; }
}

然后

var childForm = new MyChildForm();
childForm.Owner = Program.MainWindow;
//childForm.ShowInTaskbar = false;
childForm.Show();

答案 1 :(得分:0)

不是设置TopMost = true;而是使用Form1.ShowDialog();

使您的表单成为对话