C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用)

看似一个简单的功能需求,其实很多初学者处理不好的,很多朋友会这么写:

知道错在那里吗在强依赖!如果父窗体与子窗体在同一个模块内看似没有错,因为这种反向引用在同一个模块内是可行的,但程序不能这么写,你把它写死了!固化了!假设我们的项目不断在扩展,需要将父窗体与子窗体分开在不同的模块,这段代码就完了!因为父窗体模块必须引用子窗体模块,而子窗体需要用到frmParent的类,又要引用父窗体的模块!这时构成了双向引用,编译不能通过,所以讲程序写死了!
有什么办法解除这种依赖关系呢法是有的,就是使用接口解除依赖关系!

我们把程序改下:

主窗体的代码:

子窗体的代码:

C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用)

实现思路:

frmParent窗体所在的模块依赖frmChildA所在模块,而frmChildA只依赖IMdiParent接口,这正是《敏捷软件开发》中所讲的依赖倒置原则。最后,我们把IMdiParent接口部署在一个Common模块内,实际上frmParent与frmChildA只需要依赖Common模块。
源代码下载
http://www.csframework.com/download.aspxalidation=true&archive=60DF0D0B7ED43AD051E07B72283A70550B4FC6C30E2CBED549C829&category=0002F300D2BC3C68A142CC&guid=DEEEA0B9CDAF05661B6836&failedCallBack=&ft=1&FTAL=136BD6A5559F452406CB7FCDC4D5C767CA39B949BEDD4AE2

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年6月19日
下一篇 2019年6月19日

相关推荐