摘录的WinForm Control 开发5,WinForm 开发:SignleMDIFormDemos,单实例显示子窗体

MDIForm中,主窗体在显示字窗体时,怎么显示单个实例,这是本文讨论的重点。

1,首先,主窗体要能够显示MDIForm
        private void EnableContainer()
        {
            
this.IsMdiContainer=true;
        }

  2,然后就是菜单栏加载子窗体

代码
        #region 菜单栏事件
        
        
void Form1ToolStripMenuItemClick(object sender, EventArgs e)
        {
            OpenWindow(
typeof(Child1Form).ToString());
        }
        
        
void Form2ToolStripMenuItemClick(object sender, EventArgs e)
        {
            OpenWindow(
typeof(Child2Form).ToString());
        }
        
        
#endregion

 3,打开子窗体时,用子窗体类型来判断,然后选择显示或者隐藏

代码

4,判断是否包含子窗体,通过遍历父窗体的controls,判断是否存在子窗体

代码
    private bool IsContailMDIChild(string childTypeString)
        {
            Form childForm
=null;
            
foreach(var item in this.MdiChildren)
            {
                
if(item.GetType().ToString()==childTypeString)
                {
                    
//Find child in items
                    childForm=item;
                }
            }
            
            
//Show the Exists item
            if(childForm!=null)
            {
                childForm.TopMost
=true;
                childForm.Show();
                childForm.Focus();
                
return true;
            }
            
else
                
return false;
        }

 /Files/csharponworking/SignleMDIFormDemos.rar

原文地址:https://www.cnblogs.com/csharponworking/p/1689490.html