两个窗体之间的相互控制

最近遇到一个小问题,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)
            {//执行刷新方法}
        }
    }       

 上面就是两个特别简单的方法,也很好理解

posted @ 2013-03-29 22:04  侠梦千年  阅读(269)  评论(0)    收藏  举报