一、在子窗口重写窗体加载函数
public Form2()
{
InitializeComponent();
}
//重写窗体函数,this继承了原函数,先执行原函数中的内容
//参数为flag
public Form2(int flag):this()
{
//form2Flag 为本窗体的参数,用于接收父窗体传递的参数flag
form2Flag = flag;
}
二、父窗体实例化子窗体,并调用子窗体
public static Form2 form2 = null;
private void button1_Click(object sender, EventArgs e)
{
if(form2 == null)
{
//flag是测试使用的参数
form2 = new Form2(flag);
form2.Show();
}
else
{
//激活窗体
form2.Activate();
//默认窗口大小
form2.WindowState = FormWindowState.Normal;
}
}
三、子窗体的关闭函数,将父窗体实例化的子窗体设置为null
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Form1.form2 = null;
}
四、代入参数测试
父窗体默认flag为的0;子窗体forma2Flag默认为空;点击子窗体测试按钮,弹出为0,测试成功!
此外,父子窗体传值还可使用委托-事件实现!