WinForm下实现子窗体

2025-05-29 19:35:20 今晚世界杯

如果想要实现在同一个Form下的子窗体切换,下面的方法可以实现。

窗体设计,如图

增加子窗体。鼠标右键项目,选择添加,选择用户控件

注意修改用户控件的大小尺寸,和GroupBox的尺寸匹配。

建立好子窗体后,在主Form里面先声明各个子窗体类,如下:

//定义用户窗口变量

public windows1 w1;

public windows2 w2;

public windows3 w3;

public windows4 w4;

在加载主Form事件时选择实例化各个子窗体类

//加载时赋值

private void Form1_Load(object sender, EventArgs e)

{

//实例化

w1 = new windows1();

w2 = new windows2();

w3 = new windows3();

w4 = new windows4();

}

为每个要显示子窗体创建一个按钮,目的是点击按钮切换至子窗体

//output_fun

public void output_fun(string str)

{

textBox1.AppendText(DateTime.Now.ToString()+ ":" + str + "\r\n");

}

//显示用户窗口1

private void button1_Click(object sender, EventArgs e)

{

w1.Show();

groupBox1.Controls.Clear();

groupBox1.Controls.Add(w1);

output_fun("show windows1");

}

//显示用户窗口2

private void button2_Click(object sender, EventArgs e)

{

w2.Show();

groupBox1.Controls.Clear();

groupBox1.Controls.Add(w2);

output_fun("show windows2");

}

//显示用户窗口3

private void button3_Click(object sender, EventArgs e)

{

w3.Show();

groupBox1.Controls.Clear();

groupBox1.Controls.Add(w3);

output_fun("show windows3");

}

//显示用户窗口4

private void button4_Click(object sender, EventArgs e)

{

w4.Show();

groupBox1.Controls.Clear();

groupBox1.Controls.Add(w4);

output_fun("show windows4");

}

至此,一个最简单创建子窗体的方法就完成了。

如果有需要把子窗体里面的变量值传到主程序里面

用委托

子窗体内做一个返回值(或者元组)的方法

建立一个单独的静态类专门用来读写值

用json或者yaml做变量管理

最新发表
友情链接