确保新表单在堆栈的顶部
本文关键字:堆栈 顶部 表单 新表单 确保 | 更新日期: 2023-09-27 18:12:41
在WinForms
中,我需要确保新打开的Form
位于堆栈的顶部,并且不隐藏在实例化它的Form
后面。我不想使用TopMost
属性,因为它强制新形式保持在所有运行进程打开的所有Forms
之上。我只需要让我的新Form
在当前应用程序的所有表单上打开。
此方法将检查当前应用程序的OpenForms集合,以查找传入的带有标题的窗口。如果找到它,它将激活窗口,或者让窗口管理器启动一个。
不确定如何对窗口进行z排序,但可以在代码中使用循环,并对每个openform做一些操作。
public void FindWindowOrMake(string theTitle)
{
var found = false;
foreach (var openForm in Application.OpenForms.Cast<Form>()
.Where(openForm => openForm.Text.Equals(theTitle)))
{
found = true;
openForm.Activate();
break;
}
if (found) return; // target found and activated
// create new instance
WinMgr.Create(theTitle);
}