[英]How to bring MDI Child Form To Front?
概述:
我有一個MDI Parent Form,其中我加載了其他forms。加載第二個表格后,我不能再將第一個放在前面。
描述:
在父窗體上,我有一個包含 2 個菜單項的菜單條; 主頁和搜索。 每個點擊事件都會加載相應的表單,除非該表單已加載。
問題:
一種。 單擊搜索。 然后單擊主頁。
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))
看起來像復制粘貼錯誤讓你。
您可以嘗試以下幾種選擇:
f.TopMost = true;
f.BringToFront();
此外,您可以在對話框模式下打開窗口:
f.ShowDialog();
希望這會有所幫助。 最好的祝福,
您可以將代碼更改為此,如果表單存在,請將其置於最前面。
// 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();
form.BringToFront();
//form.WindowState = FormWindowState.Maximized;
return;
}
}
// If frmSearch is not Opened, create it.
frmSearch f = new frmSearch();
f.MdiParent = this;
f.Show();
foreach (Form form in System.Windows.Forms.Application.OpenForms)
{
if (form.GetType() == typeof(Tviewer))
{
form.WindowState = FormWindowState.Minimized;
form.WindowState = FormWindowState.Normal;
return;
}
}
//它對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.