博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET组件控件实例编程系列——1.开篇
阅读量:6689 次
发布时间:2019-06-25

本文共 1051 字,大约阅读时间需要 3 分钟。

网上已经有很多关于组件和控件的文章了,我也是通过这些文章慢慢学会这些技术的。但那些文章主要是教程式的,给的例子虽然简单容易理解,但针对实际应用的例子比较少。这里把我在工作和学习中做过的组件和控件的实现方法贴出来,希望对初学者能有帮助。当然我的代码中也会存在不少问题,有些解决方法也并不完美,希望看到的朋友不吝赐教。

首先把我之前参考的系列文章的链接贴出来,里面有比较详细的教程,对初学者帮助较大。

 .NET组件编程

WinForm控件开发

要学会组件控件编程,首先必须了解PropertyGrid控件,以及相关的Attribute,这些在上面所给的参考文章中已经有比较详细的介绍。

关于控件,就不需要过多解释,而组件则没有控件那么应用广泛。最直观的理解是控件是运行时可见的,而组件是运行时不可见的。控件一般是用来和用户进行交互操作的,而组件是封装业务逻辑的。在我编程的时候,组件通常是附加在特定的控件上,为控件提供一定的业务功能的。而我在很多时候都偏向于使用组件,下面就分析组件相对于控件的优势。

比如对一个控件A需要添加功能X,用控件的方法去实现就是继承控件A,然后在新控件B中实现功能X。如果需要对控件A添加功能Y,继续用控件的方法的话,需要再创建一个控件C继承控件A,然后实现功能Y。但是如果再做完上面的工作之后,需要对控件A同时添加功能X和功能Y,或者需要对控件D添加功能X,就必须创建更多的控件。如此下去就会造成控件数量激增,不利于管理。

如果用组件的话,情况就大不一样了。创建组件分别封装功能X和功能Y,需要对控件A添加功能X的话,把组件X拖放到窗体中,设置组件X的一个属性指定为控件A即可。如果需要添加功能Y的话,和之前的步骤完全一样。如果需要对控件D添加功能,只要组件的接口支持控件D,和针对控件A的操作也完全一样。如此,给控件添加功能就像搭积木一样方便。每种功能只需要有一个组件去实现,然后把需要添加对应功能的控件与组件绑定即可。

组件的思路也符合编程中的一个基本原则:先组合后继承。比起控件来,组件的应用显得更灵活,所以在很多时候我都会选择组件。另一个原则就是一个组件只封装一种功能,不要贪多求全把多个功能封装到一个组件里,这样会降低组件的灵活性。

本篇就到此吧,从下一篇开始,将通过实例演示如何实现组件控件编程。

 

转载于:https://www.cnblogs.com/conexpress/archive/2009/03/02/component_control_01.html

你可能感兴趣的文章
看博客学学Android(十四)
查看>>
在Windows下安装配置jforum测试环境
查看>>
WEB基础
查看>>
AtCoder Regular Contest 081
查看>>
树状数组模板
查看>>
2017"百度之星"程序设计大赛 - 初赛(A)
查看>>
Python3 输出
查看>>
实验四 shell编程2
查看>>
多线程的那点儿事(基础篇)
查看>>
解决ViewPager多次刷新后重叠问题
查看>>
在Eclipse中使用JUnit4进行单元测试(中级篇)
查看>>
备忘 - Redis For Mac
查看>>
LeetCode - 51. N-Queens
查看>>
LeetCode 【46. Permutations】
查看>>
提交form表单页面不跳转
查看>>
一个分号导致两种截然不同的结果
查看>>
System.web.optimization 在 Asp.Net WebForm 中应用得注意了
查看>>
springMVC学习笔记三
查看>>
springboot知识点【笔记】
查看>>
linux前奏
查看>>