標籤:rom bool lis panel null 最大 max als span
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); } }
C# Winfrom MDI(多重文件介面)