C#控件编程实践

C#控件编程实践

ID:41849411

大小:227.50 KB

页数:7页

时间:2019-09-03

C#控件编程实践_第1页
C#控件编程实践_第2页
C#控件编程实践_第3页
C#控件编程实践_第4页
C#控件编程实践_第5页
资源描述:

《C#控件编程实践》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C#控件编程实践实践目的:1、学习并了解程序开发设计思想;2、学习并掌握自定义控件实现的一般步骤;什么是控件呢控件是一种在图形用户界面(GUI)上的对象,用户可操作该对彖来执行某一行为。控件是用户可通过与之交互实现数据输入或操作的对象。集成开发环境(IDE)屮的Button>EditBox.Label等都是控件,控件通常出现在对话框中或工具栏上。控件开发有三种策略(1)改进一个现有的控件可以将现有控件作为起始点,通过改变其属性获得创造性的效果,例如,可以利用一个文本框,添加一个叫做TextCaps的定制属性,该属性使文木总是以大写字母显示

2、。这是一种在控件中得到所需功能的好方法。(2)创建一个用户绘制的控件可以用图形方法口己绘制界面,创建一个不包括任何现有控件的完全原始的控件。绘制自己的控件需要比其他两种方法做更多的工作,但是它可以提供一个个原始的或不同的用户界面。(3)从现有控件中组装控件这种方法也称作从组成控件中建立控件。因为仅是将现有控件组合在一起,所以这是建立Windows控件库最容易的方法。例如,可以把一个组合框和一个文本框组合在一起,并且编写使它们以想要的方式相互作用的最少的代码。从其他现有控件中组装Windows控件库有许多优点。首先,当你为新的定制控件添加现

3、有控件时,将得到现有控件的全部功能。当考虑到一个普通控件所支持的事件过程、方法和属性数目时,上述功能将是一个非常重耍的因素。其次,把许多控件组合成一个控件,使它们能作为一个单位来进行处理,从应用程序的结构来看,这可能使事情变得更容易。这种方法还能一次把它们全部绘制到窗体上。另外一个优点是用户可以很容易地理解一个rti他们已经了解的控件构成的控件。所以,我们本次实践中的控件编程是以组装Windows控件库的方式进行。用户控件的实现比较简单,直接从System.Windows.Forms.UserControl继承。publicclassUs

4、erControll:System.Windows.Forms.UserControl实现自己的控件设想我们有一组列表数据,需要在程序中显示,我们一般的做法是直接在应用程序中构建TreeView,并添加相应的节点。这种做法使得应用程序臃肿,如果另外一个项目也要实现该功能,先前实现的代码只能通过源代码级別的共享。因此,我们用自定义控件的方法,來实现数据的显示问题。在进行开发之前,我们必须对控件进行设计:要明确控件即将实现什么功能、需要设置哪些字段、属性和方法等。该控件能获取或设置背景颜色、控件字体,能得到选中的数据。这样,我们设置相应的属性

5、,定义事件,同时还需要一个方法用來获収外部数据。控件类的定义如下:DataViewCtl:UserControl-_CtlBackColor:byte=Color.White-_CtlFont:byte=Font(n宋体蔦12)+CtlBackColor:byte+CtlFont:byte+eventCtlEventHandlerCtlMouseClick+eventCtlEventHandlerCtlMouseDClick+eventCtlEventHandlerCtlMouseRCIick+Connect(HashTabledata)

6、():void同时我们需要定义一个委托,以便实现DataViewCtl中的事件定义。委托是事件的基础。delegafevoidCflEvemHaiidleHobjecfsendei;aiMoiiseEvemA『gse)委托中有CtlMouseEventArgs类型的参数,CtlMouseEventArgs是参数类。参数类的定义如下:CtlMouseEventArgs:MouseEventArgs-_Name:string=String.Empty+Name:string+CtlMouseEventArgs(inbutton:byte,in

7、name:string):void具体的实现步骤如下:1、新建一个VisualC#Windows控件库项目DataViewerCtlo如图1所示。图1新建控件库项目2、对“解决方案资源管理器”中DataViewerCtl项目中的UseiControl1的控件进行重命名,改名为“DataViewCtl”。调整DataViewCtl的大小,并在其上添加一个名为tvDataList的TreeView控件。3、右击"解决方案资源管理器”中DataViewerCtl项目,添加一个名为CtlMouseEventArgs的类,该类继承于MouseEve

8、ntArgs^参数类的作用主要是在进行鼠标事件时候,返回需要获収的内容,这些内容都是通过参数类中的属性返回的。在此控件中,我们只需要返回选中的TreeNode节点的名称。所以,需要添加一个Na

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。