你的位置:首页 > 软件开发 > ASP.net > 委托应用①——窗口之间方法/控件调用

委托应用①——窗口之间方法/控件调用

发布时间:2015-06-27 00:00:21
转载请注明地址:http://www.cnblogs.com/havedream/p/4602974.html   最近重新拿起以前的书看,发现关于委托和事件一直没有很好的理解,或者说理解了也不知道到底这个东西有什么用,今天恰好碰到了一个窗口之间方法调用的问题(至于控件的调用 ...

委托应用①——窗口之间方法/控件调用

  

转载请注明地址:http://www.cnblogs.com/havedream/p/4602974.html

 

  最近重新拿起以前的书看,发现关于委托和事件一直没有很好的理解,或者说理解了也不知道到底这个东西有什么用,今天恰好碰到了一个窗口之间方法调用的问题(至于控件的调用其实是一样的,方式一样),问题描述如下:

  Form1中有一个刷新方法Refreash(),Form1用dialog方式打开Form2,我需要在更改完Form2后,也就是关闭Form2的时候刷新Form1,也就是调用Form1的Refreash()方法

这个问题对于我来说不算太难,通常我的处理方式是这样子的:把Form1作为参数直接传递给Form2,然后在Form2关闭的时候实例化Form1,调用Refreash方法,还有方法二,把Refreash方法直接定义成static,当然问题随之而来,如果你的Refreash中有控件的话,你需要把控件的private改成public才不会报错!

  我这里希望用委托的方式来实现,另外我觉得把委托理解成抱大腿模式更容易理解,我把我的理解写在了注释中,仔细看,以下是我的解决方案:

 

新建Form2窗口,代码如下:

 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Draget='_blank'>wing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms;10 11 namespace Learn_Form_Delegate12 {13   public partial class Form2 : Form14   {15     /// <summary>16     /// 定义委托17     /// </summary>18     public delegate void testDelegate();19     /// <summary>20     /// 定义委托事件21     /// </summary>22     public event testDelegate refreshForm;23     public Form2()24     {25       InitializeComponent();26     }27 28     private void button1_Click(object sender, EventArgs e)29     {30       //执行委托事件31       //具体执行的到底是什么,form2并不关心,32       //如果你订阅了我的refreshForm事件,33       //那么我执行refreshForm的时候你就必须响应34       refreshForm();35       this.Close();36     }37   }38 }

原标题:委托应用①——窗口之间方法/控件调用

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录