winform制作自定义控件(入门)

原文链接:http://blog.csdn.net/bychentufeiyang/article/details/7081402

 

与原文基本一致,只是例子变成VS2012环境,语言采用博主常用的VB.NET

一 、概述
Windows 窗体控件是可再次使用的组件,它们封装了用户界面功能,并且可以用于客户端 Windows 应用程序。“Windows 窗体”不仅提供了许多现成控件,还提供了自行开发控件的基础结构。可以组合现有控件、扩展现有控件或创作自己的自定义控件。Windows 窗体控件是从 System.Windows.Forms.Control 直接或间接派生的类。以下列表描述了开发 Windows 窗体控件的常见方案:

组合现有控件来创作一个复合控件。

复合控件封装有一个可以作为控件重复使用的用户界面。可视化设计器为创建复合控件提供了有力的支持。要创作一个派生自 System.Windows.Forms.UserControl 的复合控件。基类 UserControl 为子控件提供了键盘路由并使子控件可以作为一个组进行工作。

·  扩展现有控件,对其进行自定义或为其添加功能。

可以通过从任何 Windows 窗体控件派生控件并重写或添加属性、方法和事件的方式来自定义 Windows 窗体控件。

· 创作一个不是通过组合或扩展现有控件而形成的控件。

在这种方案中,需从基类 System.Windows.Forms.Control 派生控件。可以添加和重写基类的属性、方法和事件,来制作功能强大,能满足自己需求的控件。

Windows 窗体控件的基类 System.Windows.Forms.Control 为客户端 Windows 应用程序中的外观显示提供了所需的途径。Control 提供了一个窗口句柄,用来处理消息路由并提供鼠标和键盘事件及许多其他用户界面事件。还提供了高级布局,并具有用于外观显示的特定属性,如 ForeColor、BackColor、Height、Width 和许多其他属性。此外,它还提供了安全性、线程支持以及与 ActiveX 控件的交互性。由于基类提供了很多基础结构,使得开发自己的 Windows 窗体控件变得相对简单。

二、编写简单的自定义控件
2.1、简单控件例子
下面的示例创建一个简单控件,该控件通过处理 Paint 事件显示其 Text 属性的值。为了创建此控件和处理事件,必须创建一个从 Control 继承的类,并创建一个重写 OnPaint 方法的方法。

Public Class HelloWorldControl
    Inherits System.Windows.Forms.TextBox

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim rect As RectangleF = New RectangleF(ClientRectangle.X,
                                         ClientRectangle.Y,
                                         ClientRectangle.Width,
                                         ClientRectangle.Height)
        e.Graphics.DrawString(me.Text, Font, New SolidBrush(ForeColor), rect)
    End Sub

End Class

2.2、我们在VS2012中创建自定义控件的步骤:
1. 打VS2012,文件/新建/项目。

2. 出现“新建项目”对话框,然后入下图所示选择。

3. 单击“添加”,这时一个自定义控件工程已经建成,生成一下,就制作了一个简单的自定义控件,只不过没有任何功能。

4. 向新用户控件添加任何标记和控件,并为该用户控件添加执行的所有任务(例如,处理控件事件或从数据源读取数据)添加代码。

*博主在这里并不清楚应该选择那种工程姑且选择如下

博主并不精通.Net,但博主用此种方法生成,发现在\bin\Debug文件夹下生成了dll,这也正是博主需要学习的

2.3、检查控件的设计时行为
1. 启动 VS2012。

2. 通过从“文件”菜单单击/新建/项目/Windows应用程序,此时有一个默认窗体,博主就用这个默认窗体来试验。

3. “工具/选择工具箱项…”,在弹出的“选择工具箱项”对话框中点下面的浏览按钮选择要使用控件的 DLL;确定后,该控件出现在工具箱的底部。

4. 选择该控件并将其添加到窗体中。将看到该控件出现在窗体上。

5. 如果从上一个示例添加控件,您将注意到即使如此简单的控件都具有一整套属性和广泛的设计时行为。此默认行为是从 Control 类继承的。

找到刚才编译好的dll,

至此博主已经知道自己想知道的,所有原文后半部内容不再复述

1:选择Windows窗体控件库,就可以将项目编译成dll,dll中有控件

2:如何将编译好的dll放进工具箱

winform制作自定义控件(入门)

时间: 2024-11-07 11:35:16

winform制作自定义控件(入门)的相关文章

winform制作自定义控件

一 .概述Windows 窗体控件是可再次使用的组件,它们封装了用户界面功能,并且可以用于客户端 Windows 应用程序.“Windows 窗体”不仅提供了许多现成控件,还提供了自行开发控件的基础结构.可以组合现有控件.扩展现有控件或创作自己的自定义控件.Windows 窗体控件是从 System.Windows.Forms.Control 直接或间接派生的类.以下列表描述了开发 Windows 窗体控件的常见方案: ·  组合现有控件来创作一个复合控件. 复合控件封装有一个可以作为控件重复使

C# 自定义控件入门

自定义控件初学成果: 为了完善仿Windows的画板,做了一个很原始的颜色抬取控件.现在将大致的过程介绍下.大家也可以直接下载工程文件. 平台:VS 2005 WINFORM 语言:C# 最终效果图: 光看看图片似乎说明不了什么问题,还是接着往下看吧! 要想在VS 2005 winform 中编辑自定义控件,步骤如下: 1.点击文件->新建项目->选择Windows控件库 2.编辑控件 3.点击生成->生成 项目名称 ,完成这一步后会在bin或debug目录下看到"项目名称.d

中文版Dreamweaver+Flash+Photoshop网页制作从入门到精通(CS4版) PDF扫描版

中文版Dreamweaver+Flash+Photoshop网页制作从入门到精通(CS4版)内容丰富.实用,讲解循序渐进,每章都安排有丰富的应用实例.练习实例和知识问答,在每一页的下方还提供了与所讲解知识相关的操作技巧.注意事项和经验之谈,尽可能多地解决学习中的疑问,以满足不同学习阶段的读者对学习内容的不同要求. 中文版Dreamweaver+Flash+Photoshop网页制作从入门到精通(CS4版)适合于从未接触过网页制作的初级读者,以及有一定网页制作基础但想灵活使用dreamweaver

HTML、CSS、JavaScript网页制作从入门到精通 (刘西杰) pdf扫描版彩色版?

html.css.JavaScript网页制作从入门到精通中从基础知识开始讲起,如html的基本标记.文字与段落标记.表格标记.超链接标记--同时介绍了目前流行的web标准与css网页布局实例,以及基于语言的网页特效制作.需要的朋友们可以下载看看! HTML\CSS\JavaScript网页制作从入门到精通共分为18章和4个附录,重点介绍使用HTML进行网页制作的方方面面,同时讲解了目前流行的Web标准与CSS网页布局实例,以及基于JavaScript语言的网页特效制作.为了便于读者学习,附录中

WinForm GDI+自定义控件总结(一)

前言 由于项目的原因好久没写博客了,也正是项目的原因开始系统的学习WinForm,从而接触到自定义控件的开发.自定义控件的开发有一定的难度,对开发者要求比较高,需要了解Windows运行的机制,熟悉win32Api和GDI+.下面是我收集的一些资料,挺不错的. 资料 .NET组件编程http://www.cnblogs.com/mapserver/category/57177.html .NET组件编程(1) 基础.NET组件编程(2) PropertyAttribute和EventAttrib

WinForm(C#)自定义控件之——RoundButton(圆形按钮)

最近需要做一个圆形的按钮,去CodeProject找了一下,发现有现成的可用,但不能完全满足我的需求.因此自己试着利用WinForm中的自定义组件功能,制作一个圆形按钮.圆形按钮小制作即将开始之前,先来看看最终效果(Demo程序下载链接:http://download.csdn.net/detail/keypig_zz/9440806) 下面分两步制作这个按钮. A. 目标 想了一下,即将制作的圆形按钮需要满足几个要求: i. 按钮呈现圆形或椭圆形,具体形状参数可调: ii. 按钮用不同的填充色

自定义控件入门及案例

自定义控件一般分为2种: 1.组合控件 第1种形式:自定义一个类继承任意一个布局(XXLayout),然后复写它的构造方法,填充view,得到XML属性并设置属性.这 种形式我在上一篇文章已经详细讲到  http://4259297.blog.51cto.com/4249297/1683192 第2种形式:由Android原生的控件组合起来,配合动画实现的效果. 2.自定义控件: 控件之所以能由代码转换成视图展现在屏幕上,在底层主要会做3件事:测量(measure).布局(layout).绘制(

winform制作小工具的技巧

在使用winfrom制作一些工具的时候,一些基本设置都是去属性里面找来找去,一段时间就忘了,记录记录以备不时之需. 一.窗体绘制的常用设置 窗体的设置应当在窗体构造函数中InitializeComponent()方法前执行 public frmMain() { this.StartPosition = FormStartPosition.CenterScreen;//窗体居中显示 this.MaximizeBox = false;//不显示最大化按钮 this.FormBorderStyle =

ASP.NET自定义控件入门Demo

最近看了MSDN关于自定义控件的介绍,根据官方的文档,自己学着做了一个简单的Demo给需要的朋友参考. ASP.NET 源生的TextBox是不带Label标签的,这里我要实现的是创建一个带Label标签的TextBox,并且默认填充Text值为GUID(只读) 实际上现在很多第三方组件都有这种控件,如Ext.Net,FineUI等等.这里只是为了学习了解自定义控件的开发. 步入正题 1.在VS2010中创建一个类库项目,我选择的框架是3.5.名称“MyTextBoxControl” 2.然后新