两个窗体之间的相互控制
最近遇到一个小问题,Form1中的button1 单击后显示 Form2,在Form2中进行修改后,Form2关闭。刷新Form1。
首先想到的肯定是调用Form1的刷新 显示控件的方法。那么就需要在Form2执行的时候,获得Form1的实例。但是总觉得这个方法不是很好,不是想要的。下面介绍两种方法:
一)使用委托,来检查Form2的关闭,关闭的时候执行委托事件(将刷新方法定义到事件)
public class Form2
{
public delegate void refreshPageHander();
public event refreshPageHander refreshEvent;
private void button1_Click(object sender, EventArgs e)
{
if (refreshEvent != null)
{
refreshEvent(); //执行委托,刷新DataGridView
}
}
}
二)将Form2的调用使用showDialog(),得到返回的按钮结果,刷新页面
public class Form1 { private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); DialogResult result = form2.ShowDialog(); //需要设置Form2 button1的DialogResult属性为 OK if(result == DialogResult.Ok) {//执行刷新方法} } }
上面就是两个特别简单的方法,也很好理解

浙公网安备 33010602011771号