完成效果:
解释:
主窗口是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 }