概述:
我有一个 MDI 父窗体,我可以在其中加载其他窗体。加载第二个表单后,我无法再将第一个表单带到前面。
描述:
在父窗体上,我有一个包含 2 个菜单项的菜单条;主页和搜索。 每个点击事件都会加载相应的表单,除非该表单已加载。
问题:
a. 单击“搜索”。然后单击主页。
b.如果再次单击“搜索”,它不再将其对应的、已打开的表单置于最前面。
private void tsmHome_Click(object sender, EventArgs e)
{
// Loop through all open forms...
foreach (Form form in Application.OpenForms)
{
// If frmHome is Opened, set focus to it and exit subroutine.
if (form.GetType() == typeof(frmSearch))
{
form.Activate();
return;
}
}
// If frmHome is not Opened, create it.
frmHome f = new frmHome();
f.MdiParent = this;
f.Show();
}
private void tsmSearch_Click(object sender, EventArgs e)
{
// Loop through all open forms...
foreach (Form form in Application.OpenForms)
{
// If frmSearch is Opened, set focus to it and exit subroutine.
if (form.GetType() == typeof(frmSearch))
{
form.Activate();
return;
}
}
// If frmSearch is not Opened, create it.
frmSearch f = new frmSearch();
f.MdiParent = this;
f.Show();
}
最佳答案
您的代码对我有用。在您的 tsmHome_Click
事件处理程序中更改一行后
你有。
if (form.GetType() == typeof(frmSearch))
应该是。
if (form.GetType() == typeof(frmHome))
您似乎遇到了复制粘贴错误。
关于c# - 如何将 MDI 子窗体带到前面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27436531/