楼上的方法也是一种,还可以直接把窗体当作参数窗体给另一个窗体。
Form2的定义:
public partial class Form2 : Form
{
Form1 _form;
public Form2(Form1 form)
{
InitializeComponent();
_form = form;//得到传过来的Form1实例
}
private void button1_Click(object sender, EventArgs e)
{
_form.MyShow();
}
}
Form1的定义:
public Form1()
{
InitializeComponent();
}
public void MyShow()
{
MessageBox.Show(this.Text);//这个方法将来可以在From2里面调用
}
private void button1_Click(object sender, EventArgs e)
{//新建一个Form2,并把Form1传过去
Form2 form2 = new Form2(this);
form2.Show();
}
//在调用子窗体Form2时,要把Form2的所有者设为主窗体Form1
Form2 f2 = new Form2() ;
f2.Owner = this;
f2.ShowDialog();
//在Form2中调用主窗体Form1时
Form1 f1 = (Form1)this.Owner;
接着调用Form1的公有方法
在form1的加载方法里对 副窗体 直接new 一个
private void form1_Load(object sender, EventArgs e)
{
form2 fm = new form2();
fm.showdialog();
}
Form2的定义:
public partial class Form2 : Form
{
Form1 _form;
public Form2(Form1 form)
{
InitializeComponent();
_form = form;//得到传过来的Form1实例
}
private void button1_Click(object sender, EventArgs e)
{
_form.MyShow();
}
}
Form1的定义:
public Form1()
{
InitializeComponent();
}
public void MyShow()
{
MessageBox.Show(this.Text);//这个方法将来可以在From2里面调用
}
private void button1_Click(object sender, EventArgs e)
{//新建一个Form2,并把Form1传过去
Form2 form2 = new Form2(this);
form2.Show();
}