日期:2014-05-18  浏览次数:20758 次

怎样关闭子窗口的同时刷新父窗口
父窗口   form1
子窗口   form2

打开子窗口
private   Button1_Click(object   sender,   EventArgs   e)
                {
                        form2   sonform   =   new   form2();
                        form2.ShowDialog();
                }
关闭子窗口
private   Button2_Click(object   sender,   EventArgs   e)
                {
                        this.close()
                }

怎么改可以实现   关闭子窗口的同时刷新父窗口

我想得到父窗口的引用该怎么做啊??

我是初学者阿,请指教

------解决方案--------------------
form1:
private void button2_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Owner = this;
frm2.Show();
}
form2:
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
this.Owner.Invalidate();
}
------解决方案--------------------
第一种,主动方式
private Button1_Click(object sender, EventArgs e)
{
form2 sonform = new form2();
form2.ShowDialog();
//直接调用你自己的刷新函数,因为showdialog是停止在上一行的,你关闭后才运行到此行
}
关闭子窗口
private Button2_Click(object sender, EventArgs e)
{
this.close()
}


另一种,被动方式
主窗体接收子窗体的关闭事件

Form2 f = new Form2();
f.FormClosing += new FormClosingEventHandler(f_FormClosing);


void f_FormClosing(object sender, FormClosingEventArgs e)
{
throw new Exception( "The method or operation is not implemented. ");
}