傳統上,可以為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();
}
}
}
{
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;
}
}
}
{
public partial class frmChild : Form
{
//2、傳入主窗體
public frmChild(MdiBasic.frmContainer parent)
{
InitializeComponent();
//2、將子窗體注冊到容器中
this.MdiParent = parent;
}
}
}