1、首先設置父級Form1界面,只需要將該界面的IsMdiContainer屬性設置為true;
2、設置按鈕的事件來打開子級的窗口Form2,Form3等等;
3、在From1內設置一個容器panel,范圍為需要打開的子級界面的大小;
4、設置Form2、Form3的事件,以及唯一窗口等;
//Form2的點擊事件 private void form2ToolStripMenuItem_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Name = "f2"; openwidow(f2); } //Form3的點擊件 private void form3ToolStripMenuItem_Click(object sender, EventArgs e) { Form3 f3 = new Form3(); f3.Name = "f3"; openwidow(f3); } //設置唯一窗口: //新建一個formlist集合,供唯一窗口使用 List<Form> formlist = new List<Form>(); //新建一個public的方法 private void openwidow(Form f) { //定義一個Form fff變量 Form fff = null; //定義一個bool類型的變量為false; bool open = false; //遍歷這個集合 foreach (Form ff in listfrom) { //只要遍歷到就隱藏 ff.Hide(); //如果遍歷到f.name if (ff.Name == f.Name) { open = true; //把ff放到集合內 fff = ff; } } //如果遍歷到f.name, if (open) { //關閉所有窗口 f.Close(); //重新打開這個串口 fff.Show(); } //否則 else { //設置打開的窗口為Form1的子窗體; f.MdiParent = this; //設置子窗口的大小為最大化; f.WindowState = FormWindowState.Maximized; //把子窗口放到Form1的panel1里; f.Parent = panel1; //設置無邊框 f.FormBorderStyle = FormBorderStyle.None; //打開窗口 f.Show(); //把這個窗口放到集合內 fromlist.Add(f); } }
