如果想要实现在同一个Form下的子窗体切换,下面的方法可以实现。
1. 窗体设计,如图
2. 增加子窗体。鼠标右键项目,选择添加,选择用户控件
- 注意
修改用户控件的大小尺寸
,和GroupBox的尺寸匹配。
1 2 3 4 5
| public windows1 w1; public windows2 w2; public windows3 w3; public windows4 w4;
|
1 2 3 4 5 6 7 8 9
| private void Form1_Load(object sender, EventArgs e) { w1 = new windows1(); w2 = new windows2(); w3 = new windows3(); w4 = new windows4(); }
|
5. 为每个要显示子窗体创建一个按钮,目的是点击按钮切换至子窗体
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| public void output_fun(string str) { textBox1.AppendText(DateTime.Now.ToString()+ ":" + str + "\r\n"); }
private void button1_Click(object sender, EventArgs e) { w1.Show(); groupBox1.Controls.Clear(); groupBox1.Controls.Add(w1); output_fun("show windows1"); }
private void button2_Click(object sender, EventArgs e) { w2.Show(); groupBox1.Controls.Clear(); groupBox1.Controls.Add(w2); output_fun("show windows2"); }
private void button3_Click(object sender, EventArgs e) { w3.Show(); groupBox1.Controls.Clear(); groupBox1.Controls.Add(w3); output_fun("show windows3"); }
private void button4_Click(object sender, EventArgs e) { w4.Show(); groupBox1.Controls.Clear(); groupBox1.Controls.Add(w4); output_fun("show windows4"); }
|
6. 至此,一个最简单创建子窗体的方法就完成了。
- 如果有需要把子窗体里面的变量值传到主程序里面
- 用委托
- 子窗体内做一个返回值(或者元组)的方法
- 建立一个单独的静态类专门用来读写值
- 用json或者yaml做变量管理