关于委托的问题 本帖最后由 beiqibing 于 2012-08-20 14:50:35 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你都用委托了,就不需要实例化的具体对象,+=操作后期完成。窗体A的打开窗体C时使用了委托,为啥不能同时初始化B的委托呢? Form f = new Form(); f.aa += new bb(cc); f.Show(); 这个不算实例化Form吗?我理解的初始化委托一定要在将要被被操作的窗体中,因为“操作”的都是这个窗体中的资源,所以B得委托应在B中初始化,这样+=操作后期完成,”操作后期完成“才方便?不知道理解的哪边有问题,请指正 委托传递的是方法名,或者说是方法的地址,也就是你这里面的cc,在A初始化C的时候,这个cc就应该是A中的某个方法,让C在某个时间执行这个委托的时候调用它。而你的C是由A初始化的,并非通过B,那么B不可能知道A什么时候会去初始化一个C出来,自然针对B的委托,就应该由A来负责提供,只要传递B中的方法即可,而B中需要传递的方法必须声明为public,且A要能够获取B的实例。 “且A要能够获取B的实例”,如果B是A的父窗体呢,A获取B的实例,不是相当于又实例化了一个主窗体,这样相应的委托就在新窗体实例中执行委托操作了,旧的主窗体没有变化。 B窗体的委托我是这样写的,在A窗体中写:窗体B b = new 窗体B();formaddequ.formmainMyEqu += new FormMainEquDelegate(b.form_main_MyEqu);form_main_MyEqu是在主窗体窗体B中的public方法 B既然是A的父窗体,那么通过A的Owner属性就可以访问了。你新建的B窗体和你已经存在的B窗体完全是不同的两个窗体,怎么可以那么写? 还是有关查询问题求纠错 C#适合开发小游戏吗?或者他适合干嘛? 后台执行alert,经过调试,执行到那了,为什么就不弹出窗口? 寻求一份可用的FTP代码 datagridview传值问题? 一个非常为难的选择问题!---------大家帮帮忙,给小弟支支招吧 combobox 控件显示问题...(新手在线等) 一个关于C#编译方式的问题 关于C#中数据库编程问题!!很急!! 如何实现? SQL 判断表是否存在 C# 树形结构自动生成id
f.aa += new bb(cc);
f.Show();
这个不算实例化Form吗?我理解的初始化委托一定要在将要被被操作的窗体中,因为“操作”的都是这个窗体中的资源,所以B得委托应在B中初始化,这样+=操作后期完成,”操作后期完成“才方便?不知道理解的哪边有问题,请指正
窗体B b = new 窗体B();
formaddequ.formmainMyEqu += new FormMainEquDelegate(b.form_main_MyEqu);
form_main_MyEqu是在主窗体窗体B中的public方法