c#中,在同一父窗体下有两个子窗体,这两个子窗体之间如何相互调用(是相互调用,不是单向)
父窗体A下同时new了两个子窗体C,B,现在需要用C调用B中的函数、变量、事件。又需要用B调用C中的函数、变量、事件。也就是C、B窗口之间可以用一个完全控制另外一个,请问...
父窗体A下同时new了两个子窗体C,B,现在需要用C调用B中的函数、变量、事件。又需要用B调用C中的函数、变量、事件。也就是C、B窗口之间可以用一个完全控制另外一个,请问该如何实现?
展开
3个回答
展开全部
想调用对象都定义成Public的就行了。
你New了C和B, 这两者你肯定都能找到,定义到对方的属性里去
或者 定义 委托,然后互相注册
你New了C和B, 这两者你肯定都能找到,定义到对方的属性里去
或者 定义 委托,然后互相注册
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.窗体的变量,事件,函数都写为public
2.要互相传送,可以从构造入手,或者自己定义一个静态变量
2.要互相传送,可以从构造入手,或者自己定义一个静态变量
更多追问追答
追问
相互传送,构造的话,我在C窗口中构造了B,那么C中可以调用B.,但是B不能调用C。B中调用C同理。就是感觉无法相互调用,构造函数只能单向调用。而定义public静态变量的方法,可能会增加代码耦合的风险。不知道我理解的对不对??
追答
那就创建public类,将你需要互相传来传去的变量都定义出来!
父窗体启动时,把public类Init()一下!
然后你窗体间操作public类里面的变量吧!
比如,你在public类里面,定义了一个变量buffer,那么,你A窗体操作下,buffer的值变了
那么,你再用B窗体去读去buffer,再处理下buffer,然后,C再去读,不就行了?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
创建中间类库
追问
不太明白哎。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询