c# 建立多窗口界面(MDI)方法


    傳統上,可以為Windows編寫3種應用程序,它們是:
    1)基於對話框的應用程序,它們給用戶顯示一個對話框,該 對話框提供了所有的功能。如計算器
    2)單一文檔界面(SDI),這些應用程序給用戶顯示一個菜單、一個或多個工具欄和一個窗口,在該窗口中,用戶可以執行任務。如WordPad
    3)多文檔界面(MDI),這些應用程序的執行方式與SDI相同,但可以同時打開多個窗口。

    MDI應用程序至少要由兩個截然不同的窗口組成。第一個窗口叫作MDI容器(Container,第二個為 可以在容器中顯示的窗口叫作MDI子窗口。創建MDI時,只需把窗體的IsMdiContainer屬性設為True即可。
    創建子窗體時,要把這個窗體的
MdiParent屬性設置為主窗口的一個引用,該窗體就變成子窗體了。不能通過Properties面板設置這個屬性,只能通過代碼來設置。

建立MDI的方法
    1、建立兩個窗體。將其中的一個作為主窗體的IsMdiContainer屬性設為True
    2、將作為子窗體的窗體構造函數中傳入主窗體。並將MdiParent設為傳為的主窗體,
    3、在主窗體中呼叫子窗體。


示例:
     注:下面代碼中的序號與上面建立方法的序號對應

 1、建立兩個窗體:frmContainer窗體,作為主窗體;frmChild窗體,為作子窗體。


 frmContainer代碼:

namespace MdiBasic
{
    
public partial class frmContainer : Form
    
{
        
public frmContainer()
        
{
            InitializeComponent();
            
//1、將窗體設為主窗體容器
            IsMdiContainer = true;
            
//3、顯示子窗體
            MdiBasic.frmChild child = new frmChild(this);
            child.Show();
        }

    }

}


frmChild代碼:

namespace MdiBasic
{
    
public partial class frmChild : Form
    
{
        
//2、傳入主窗體
        public frmChild(MdiBasic.frmContainer parent)
        
{
            InitializeComponent();
            
//2、將子窗體注冊到容器中
            this.MdiParent = parent;
        }

    }

}

原文地址:https://www.cnblogs.com/scottckt/p/1045141.html