winform --MDI窗体
1、窗口样式---
2、isMdiContainer---
3、True------
(确定该窗口是MDI容器)
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms; 10 11 namespace _7._01 12 { 13 public partial class Form4 : Form 14 { 15 public Form4() 16 { 17 InitializeComponent(); 18 } 19 20 private void form2ToolStripMenuItem_Click(object sender, EventArgs e) 21 { 22 bool a = false; //定义一个bool类型的a, 23 Form2 f2 = new Form2(); 24 25 foreach (Form f in this.MdiChildren) 26 { //判断是否已经打开了f2 27 if (f.Name == f2.Name) //已经打开 28 { 29 a = true; //a变为true 30 31 f.WindowState = FormWindowState.Maximized;//最大化 32 33 f.Show(); // 打开新的 34 f2.Close(); // 关闭旧的 35 } 36 } 37 if (a) //a为true 38 { 39 foreach (Form f in this.MdiChildren) 40 { 41 if (f.Name != f2.Name) //当前窗口不是f2 42 { 43 f.Hide(); //隐藏当前窗口 44 } 45 } 46 } 47 else //a为false 即为第一次打开 48 { 49 f2.WindowState = FormWindowState.Maximized;//最大化 50 f2.MdiParent = this;//当前窗体是f2的父窗体 51 52 f2.Show();//打开f2 53 } 54 } 55 56 private void form3ToolStripMenuItem_Click(object sender, EventArgs e) 57 { 58 bool a = false; //定义一个bool类型的a, 59 Form3 f3 = new Form3(); 60 61 foreach (Form f in this.MdiChildren) 62 { //判断是否已经打开了f3 63 if (f.Name == f3.Name) //已经打开 64 { 65 a = true; //a变为true 66 67 f.WindowState = FormWindowState.Maximized;//最大化 68 69 f.Show(); // 打开新的 70 71 f3.Close(); // 关闭旧的 72 } 73 } 74 if (a) //a为true 75 { 76 foreach (Form f in this.MdiChildren) 77 { 78 if (f.Name != f3.Name) //当前窗口不是f3 79 { 80 f.Hide(); //隐藏当前窗口 81 } 82 } 83 } 84 else //a为false 即为第一次打开 85 { 86 f3.WindowState = FormWindowState.Maximized;//最大化 87 f3.MdiParent = this;//当前窗体是f3的父窗体 88 89 f3.Show();//打开f3 90 } 91 } 92 } 93 } 94 95 96 -------↓--(用了panel,但有BUG)----------- 97 98 99 using System; 100 using System.Collections.Generic; 101 using System.ComponentModel; 102 using System.Data; 103 using System.Drawing; 104 using System.Linq; 105 using System.Text; 106 using System.Threading.Tasks; 107 using System.Windows.Forms; 108 109 namespace _7._01 110 { 111 public partial class Form1 : Form 112 { 113 public Form1() 114 { 115 InitializeComponent(); 116 } 117 118 private void a1111ToolStripMenuItem_Click(object sender, EventArgs e) 119 { 120 bool a=false; //定义一个bool类型的a, 121 Form2 f2 = new Form2(); 122 123 foreach (Form f in panel1.Controls) 124 { //判断是否已经打开了f2 125 if (f.Name == f2.Name) //已经打开 126 { 127 a = true; //a变为true 128 f.Show(); // 打开新的 129 f2.Close(); // 关闭旧的 130 } 131 } 132 if(a) //a为true 133 { 134 foreach (Form f in panel1.Controls) 135 { 136 if (f.Name != f2.Name) //当前窗口不是f2 137 { 138 f.Hide(); //隐藏当前窗口 139 } 140 } 141 } 142 else //a为false 即为第一次打开 143 { 144 f2.WindowState = FormWindowState.Maximized;//最大化 145 f2.MdiParent = this;//当前窗体是f2的父窗体 146 f2.Parent = panel1;//f2放在 panel1中 147 f2.Show();//打开f2 148 } 149 } 150 151 private void b2222ToolStripMenuItem_Click(object sender, EventArgs e) 152 { 153 bool a = false; //定义一个bool类型的a, 154 Form3 f3 = new Form3(); 155 156 foreach (Form f in panel1.Controls) 157 { //判断是否已经打开了f3 158 if (f.Name == f3.Name) //已经打开 159 { 160 a = true; //a变为true 161 f.Show(); // 打开新的 162 163 f3.Close(); // 关闭旧的 164 } 165 } 166 if (a) //a为true 167 { 168 foreach (Form f in panel1.Controls) 169 { 170 if (f.Name != f3.Name) //当前窗口不是f3 171 { 172 f.Hide(); //隐藏当前窗口 173 } 174 } 175 } 176 else //a为false 即为第一次打开 177 { 178 f3.WindowState = FormWindowState.Maximized;//最大化 179 f3.MdiParent = this;//当前窗体是f3的父窗体 180 f3.Parent = panel1;//f3放在 panel1中 181 f3.Show();//打开f3 182 } 183 } 184 } 185 }