自己动手用c#写控件(上)

原创 2002年07月11日 09:44:00

自己动手用c#写控件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

                                                            

                                                                                               willsoundwillsound@163.com

 

关键词

c#,.net,控件,GDI+

 

我平时比较喜欢使用delphi,小生不才,我随然喜欢delphi,平时开发(至少现在)多用delphi,但是不怕各位高手笑话,我没有用delphi写过控件,虽然原理上知道,但总感觉不知无从下手:L

但是自从接触了c#,她哪优美的身姿(代码风格),风骚而不放纵的性格(对面向对象的体现比较好,要比delphi),深深打动了我。经过一段时间的操练,我发现在开发控件及组件上(别的方面,小生我不敢妄断),其简便性真令我耳目一新。怎么样,试一把吧.J

对了,我的开发平台是windows 2000 server+.vs.net 正式版

我所实现的这个控件,是从窗体控件Button继乘的,能够实现渐变背景,实现图案及纹理填充文字.

好了,我们开在开始吧

1 首先打个vs.net

2文件菜单中,指向新建,然后选择项目以打开新建项目对话框。从“C# 项目列表中选择“Windows 控件库项目模板,然后在名称框中键入LinearGradientButtonLib,然后点确定。

3 在解决方案资源管理器中,右击 UserControl1.cs,并从快捷菜单中选择查看代码

4 找到 class 语句 public class UserControl1,将 UserControl1 更改为 LinearGradientButton以更改组件的名称。找到构造函数 public UserControl1(),将它更改为 public LinearGradientButton ()

5 Class 语句,将该控件从 System.Windows.Forms.UserControl 继承的类型更改为 System.Windows.Forms.Button。这允许继承的控件继承 Button 控件的所有功能。

6 在解决方案资源管理器中,单击 UserControl1.cs,并在属性窗口中,将 FileName 属性更改为LinearGradientButton.cs.

好了,到现在工作就告一段落了,下面的工作,是向咱们的控件添加属性了。喝口水,继续!

先加上名字空间using System.Drawing.Drawing2D;

1找到 class 语句。在紧靠 { 的后面键入下面的代码:

private Color froColor; //渐变前景色

          private Color backColor;//渐变背景色

          private bool isUseFloat;//是否使用角度转变

          private float angle;    //放置角度

          private LinearGradientMode mode;//设定渐变的角度

          private HatchStyle hatchStyle; //设定文本的填充图案

          private bool isUseStyle;//设定是否用图案填充图案

 

上面这些是我们控件需要的私有域,下面开始为每个私有域做它们对应的属性.在以上代码的下面,写入以下代码:

    [Description("设定按钮渐变的前景色"),Category("Appearance")]

         public Color FrontColor

         {

              get

              {

                   return froColor;

              }

              set

              {

                   froColor=value;

              }

         }

          [Description("设定按钮渐变的背景色"),Category("Appearance")]

         public Color BackGroundColor

         {

              get

              {

                   return backColor;

              }

              set

              {

                   backColor=value;

              }

         }

          [DefaultValue(false),Description("设定是否人工设定角度")]

         public bool UseFloat

         {

              get

              {

                   return isUseFloat;

              }

              set

              {

                   isUseFloat=value;

              }

         }

          [DefaultValue(false),Description("设定是否使用图案填充文本")]

         public bool UseStyle

         {

              get

              {

                   return isUseStyle;

              }

              set

              {

                   isUseStyle=value;

              }

         }

          [DefaultValue(0),Description("定义渐变方向的角度,以度为单位从 X 轴顺时针测量。 "),Category("Appearance")]

         public float Angle

         {

              get

              {

                   return angle;

              }

              set

              {

                   angle=value;

              }

         }

          [DefaultValue(0),Description("当UseFloat设为false时,设定渐变方向。 "),Category("Appearance")]

         public LinearGradientMode Mode

         {

              get

              {

                   return mode;

              }

              set

              {

                   mode=value;

              }

         }

          [DefaultValue(false),Description("设定文本要填充的图案"),Category("Appearance")]

         public HatchStyle FillStyle

         {

              get

              {

                   return hatchStyle;

              }

              set

              {

                   hatchStyle=value;

              }

         }

好了,我们将控件的属性设计好了,下面就要我们写事件了.

自己动手用c#写控件

  • 2009年11月16日 19:40
  • 8KB
  • 下载

android动手写平滑滚动歌词控件

马上毕业了,前段时间一直忙自己的毕业设计和毕业论文(蛋疼连着菊花疼),做的是一个android音乐播放器,今天特意抽出里面的一块功能来凑这篇博客--歌词的显示。 看看QQ音乐,歌词显示略屌,可惜我们的...

自己动手写Web自动化测试框架(4):验证Web控件

上次我们讲到了如何控制Web控件,有了上次的基础,我们这一次的东西就会比较简单:如何验证Web控。   我们知道我们测试的目的就是判断被测产品是不是符合要求,如果是手动的测试,就是点到我们要判断的地...

自己动手写 accordion 抽屉控件

//EXTUI 控件核心库 (function ($) { $.extUI = {}; $.extUI.controls = {}; //组件类 ...

自己动手写类似酷狗播放器(3)_Slider控件使用

本节总结下音乐播放中slider控件的使用,包括两个方面,slider控制播放时间和控制播放声音(这里不是系统的音量)而是声道的音量.      目标:1.通过播放进度条来控制播放进度 2.通...

Android自己动手做查找控件、绑定监听的注解框架

现在好多第三方开发框架都提供了注解方式设置控件绑定监听的方法。本着知其然知其所以然的态度,今天小菜自己撸了一遍,其中不少参考了xUtils的源码,在这里特别感谢下大神的开源精神,感谢巨人为我们提供肩膀...

C#中,datagridview与sql数据源绑定后,通过控件更改数据如何自动回写更新到数据源

以前一直在绕弯路,其实用c#自己的datagridview的数据绑定向导有便利的特征,就是能够简单的显示数据库中的某个表,但是问题是,对datagridview的更改无法通过简单的方法回写到数据库中。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自己动手用c#写控件(上)
举报原因:
原因补充:

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