日期:2014-05-17  浏览次数:20999 次

winform 通过反射执行方法
我有一个MDI父窗体A,打开了一个子窗体B,在B窗体里通过ShowDialog打开了一个窗体C
窗体B里有一个方法Refresh()
A、B、C 都继承一个窗体FrmBase
我想在窗体C里通过反射执行B里的方法Refresh()

--------------

肯定有人会问,C就是B的子窗体,直接传参就可以执行
但在的问题是不是只有通过B才能打开C,还可以通过其他的窗体打开C
不过他们都继承FrmBase

能否在FrmBase写一个反射的方法直接B里的方法Refresh()呢
要求:需要验证B是否已经打开


------解决方案--------------------
有那个必要吗,你将B的实例传给C,c里面直接用就是了,或者用委托去搞,别以为反射是什么好东西,也别以为用了反射的程序就牛
------解决方案--------------------
使用委托!比反射好
------解决方案--------------------
引用:
引用:有那个必要吗,你将B的实例传给C,c里面直接用就是了,或者用委托去搞,别以为反射是什么好东西,也别以为用了反射的程序就牛

现在的问题就是B是一个首页面,不可关闭的,可以从B打开C  这样是传实例的
但是也可以从其他的窗体打开C  就不能传B的实例了  但是也需要执行B里的方法

现在就是所有的窗体都继承了FrmBase  不知道……

既然可以打开c,就自定义事件,zaia中绑定不就行了
------解决方案--------------------
窗体间传值问题。。
------解决方案--------------------
可以绑定委托事件
------解决方案--------------------
委托比反射好,反射速度比较慢,而且稳定行不好。