C#控件与组件

原创 2012年03月28日 17:46:57

      控件就是组件。控件通常是指设计时所见即所得、运行时处理图形显示和接受用户交互输入的那些组件。当你开发一个组件,你需要从具有丰富的界面和交互机制的父类去继承,那么你做出来的当然就是控件了。

    如果你发觉根本不需要继承那写交互机制,只要继承更高层的,那么你就不是在开发控件了(那么当然也还是在开发组件)
比如许多入门书上叫做“Timer控件”的这个东西,如果你看源代码,它仅仅是组件,它没有继承控件父类接口才实现的有关“绘制界面、捕获用户焦点、支持拖放、返回windows窗口句柄、窗口线程切换、支捕获用户按键、坐标位置、改变大小、设置前景和背景颜色、设置可见性”等等功能。如果你开发一个组件,他不需要这些功能,而你从控件父类来继承设计,那么显然是画蛇添足了,由于实现有一堆自己根本不支持的功能方法接口,于是违反了面向对象设计的设计原则。

   .net的组件概念,基本上就是指可以支持在vs设计窗体上拖入、编程的类。所以它跟随便一个类也还是有区别。组件概念就好像是给普通类放上去特定的接口、或者特定的Attribute。只要非常重要,细微之处也可以自成体系。组件类非常简单,几乎没有内容,可是它是规定,vs等开发IDE环境就认识从组件类继承的子类、而不支持不从组件类继承的子类。

        组件是指可重复使用并且可以和其他对象进行交互的对象组件(component)是靠类实现的。控件是能够提供用户界面接口(UI)功能的组件。换句话说就是,控件是具有用户界面功能的组件所有控件肯定都是组件,但并不是每个组件都一定是控件
        控件分为:复合、扩展和自定义三类。
    复合控件是封装在公共容器内的Windows窗体控件的集合。这种控件有时称为“用户控件”,包含的控件称为“构成控件”。复合控件包含与每个包含的Windows窗体控件相关联的所有固有功能,允许有选择地公开和绑定它们的属性。复合控件还提供了大量的默认键盘处理功能,不需要任何额外的开发。复合控件从UserControl类派生而来。

  扩展控件是从任何现有的Windows窗体控件或者自定义控件导出的继承控件。它保留Windows窗体控件的所有固有功能,然后通过添加自定义属性、方法或其他功能扩展此固有功能。可以使用此选项重写基控件的绘制逻辑,然后更改该控件的外观以扩展其用户界面。 http://itkeys.cn/

  创建控件的另一种方法是通过从Control继承从头开始创建一个控件。Control类提供控件所需的所有基本功能(包括鼠标和键盘处理事件),但不提供控件特定的功能或图形界面。若要实现自定义控件,必须编写该控件的OnPaint事件的代码,以及所需的任何功能特定的代码。

C#(winform) 工具箱中添加自定义的组件

今天在博客园上看到一个博客,是关于Winform分页控件使用详细介绍 ,觉的这个控件非常不错,所以就把这封装好的控件down下来,试用一下,这就碰到问题了,那如何在工具箱中添加控件呢?这是我经过 摸索...
  • ccx_john
  • ccx_john
  • 2013年12月28日 13:06
  • 6223

C# 窗口和控件的操作

一。 窗口和窗口之间传值 1第一种方法用静态变量 在form1里定义 public static string  passvalue;在form2里赋值; 2第二种方法用new的参数 定义form2时...
  • gaiazhang
  • gaiazhang
  • 2016年09月02日 16:52
  • 724

C# WinForm 封装自定义组件(控件)Dll

封装自定义控件很简单,没什么技术含量,这里通过封装自定义的数字文本框实例简单总结一下: 【1】新建自定义控件库 -- Windows Forms Control Library 【2】...
  • aoshilang2249
  • aoshilang2249
  • 2014年11月18日 20:16
  • 4776

C#自定义控件之-winform美化

对于系统自带的窗体,博主实在不敢恭维,测试时使用方便快捷,但真正项目中无法使用,只因不美观的外表,每次都很头疼窗体的美化,这里列出一些需要解决的问题和自己收集到的解决方法,如有错误请指出。 废话不多说...
  • lcj401175209
  • lcj401175209
  • 2016年10月28日 09:07
  • 5278

C#通过引用Office Excel (2007) 组件实现对Excel文件的操作

[原创]C#通过引用Office Excel (2007) 组件实现对Excel文件的操作 对用应用软件来说,将报表转出为Excel文件,进行二次加工,或者根据Excel模版填充数据,是非常常用...
  • angela8804100029
  • angela8804100029
  • 2013年04月02日 14:51
  • 1954

c# 一些控件使用方法

ListBox: 1. 属性列表:     SelectionMode    组件中条目的选择类型,即多选(Multiple)、单选(Single)     Rows             列表...
  • crystalslimer
  • crystalslimer
  • 2013年10月17日 14:04
  • 2473

C# Asp.net Active控件开发全过程

最近在做Active控件的开发,签名高了很久,一直出问题,找了很多网站发现资料都不是全队,当前系统为Win7 系统开发。权当是自己的开发笔记,有问题大家可以一起讨论下,求大家别喷我~~ 1. Acti...
  • xiaoao314224236
  • xiaoao314224236
  • 2014年01月16日 14:57
  • 2238

VB调用C#写的WinForm.NET控件

一.前言:   虽然IT开发技术日新月异,不过业界仍然运行着大量的VB系统,这些系统凝聚了不少客户的投资,应当要一定程度的保护和利用。因此也就产生了一种需求,也就是使用旧的开发技术仍然可以使用新技术...
  • ddjj_1980
  • ddjj_1980
  • 2013年04月09日 16:08
  • 1782

【C#】打印控件中的内容和打印窗体中的内容

效果示意: 操作步骤: 1、新建winform项目及创建窗体 2、拖取 打印 相关控件    PageSetupDialog 、 PrintDialog 、 PrintDocument 、P...
  • catshitone
  • catshitone
  • 2016年03月31日 20:05
  • 4241

使用第三方控件NPOI操作excel

Npoi 简介 1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet;行:Row;单元格Cell。 2.Npoi 下载地址:http://...
  • cjh200102
  • cjh200102
  • 2013年10月10日 09:59
  • 3890
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#控件与组件
举报原因:
原因补充:

(最多只允许输入30个字)