完成效果:
解釋:
主窗口是MDI窗口,窗口中有子窗口,子窗口中控件有 樹形圖treeview、panel控件、listview控件(這是一個窗口中的listview)、butten控件。
功能:
單擊樹形圖中的”員工管理“ panel中會顯示listview數據
其他功能暫時沒寫。。。。。。
主窗口Form1
Form屬性:
IsMdiContainer=true;
【窗口中只能有一個父窗口,子窗口不能再通過設置IsMdiContainer=true;變為父窗口(不允許嵌套)】
后台代碼:
1 2 3 4 private void Form1_Load(object sender, EventArgs e) 5 {
6 Form1_son son = new Form1_son(); //子窗口對象
7 son.Text = "信息管理 系統維護 信息反饋";
8 son.MdiParent = this;//注意
9 son.Dock = DockStyle.Fill;//子窗口最大化(鋪滿主窗口)
10
11 son.Show();//子窗口在主窗口中顯示
12
13 // son.WindowState = FormWindowState.Maximized;
14
15
}
子窗體:Form1_son
后台代碼:
1 Form1_son_panel fpanel= new Form1_son_panel ();//孫子窗口對象 2 3 4 private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) 5 {
//也可以用swith() 6 if (treeView1.SelectedNode.Text == "員工管理") 7 { 8 fpanel.TopLevel = false;//使孫子窗口不是頂級窗口,這樣就可以嵌入窗口 9 fpanel.FormBorderStyle = FormBorderStyle.None; //孫子窗口去掉邊框 10 this.panel1.Controls.Add(fpanel);//在panel控件中加入孫子窗口
//fpanel.parent=this.panel1;(同10行功能一致)
11 fpanel.Show(); //是孫子窗口在子窗口中顯示(沒有這句不會顯示) 12 }
}
解釋:
TopLevel 屬性【true/false】
如果為 true,則將窗體顯示為頂級窗口;否則,為 false。 默認值為 true。【頂級窗口:沒有父窗口 或為主窗口】
孫子窗體:Form1_son_panel
孫子屬性:FormBorderStyle=None【只保留內容部分,邊框等去掉】
后台代碼:
1 public static Form1_son_panel fpanel;// 2 3 public Form1_son_panel() 4 { 5 InitializeComponent(); 6 7 fpanel= this;//注意 8 }