1. 思路一
1.1. 将父对话框的按钮事件定义成public方法(例如我调用父对话框的搜索按钮)
public void btn_Query_Click(object sender, EventArgs e)
{...}
1.2. 在主窗体类中定义一个静态成员,来保存当前主窗体对象
public static MainWindow pWin= null;
1.3. 然后在主窗体构造函数中或者主窗体的_Load函数中,给静态成员初始化
pWin= this;
1.4. 在子窗体中调用父窗体,可以通过“主窗体类名. pWin”来操作当前的主窗体
MainWindow.pWin.btn_Query_Click(null, null);
2. 思路2
2.1. 在Form2中定义委托方法
public delegate void CheckButton(string msg);
public event CheckButton checkButton;
2.2. 在Form2的按钮方法中实现委托方法赋值
private void button1_Click(object sender, EventArgs e)
{
this.Close();
checkButton("Form2的button1按钮");
}
2.3. 在主窗体中初始化Form2的时候实现委托
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.checkButton += Frm_checkButton;
frm.Show();
}
private void Frm_checkButton(string msg)
{
MessageBox.Show(msg);
}