问题:如果在DockPanel再次打开已经打开的页面,自动跳转到哪个已经打开的页面中;
关键代码:
content.DockHandler.Activate();
方法一:在dockPanel控件中遍历已经的开得窗体,根据比对窗体的Text确定是否打开,若打开,则跳转到已经打开的窗体中
DockContent dockContent = new frmSetData();
bool flag = false;
foreach (IDockContent content in dockPanel1.Contents)
{
string a = content.DockHandler.TabText.ToLower();
string b = dockContent.Text;
if (content.DockHandler.TabText.ToLower() == dockContent.Text)
{
content.DockHandler.Activate(); //激活已经打开的窗体
flag = true;
break;
}
}
方法二:在dockPanel控件中遍历已经的开得窗体,根据比对创建窗体时的cs文件名确定是否打开,若打开,则跳转到已经打开的窗体中
DockContent dockContent = new frmSetData();
DockContentCollection contents = this.dockPanel1.Contents;
for (int i = 0; i < contents.Count; i++)
{
string a11 = contents[i].DockHandler.Form.Name.ToLower();
string b11 = dockContent.GetType().Name.ToLower();
bool flag2 = contents[i].DockHandler.Form.Name.ToLower().Equals(dockContent.GetType().Name.ToLower());
if (flag2)
{
contents[i].DockHandler.Activate();
flag = true;
break;
}
}
bool flag3 = !flag;
if (flag3)
{
dockContent.MdiParent = this;
dockContent.WindowState = FormWindowState.Maximized;
dockContent.Show(this.dockPanel1);
}