Generated Image

WinForm控件开发【转载】

http://www.cnblogs.com/luqingfei/archive/2007/03/1...

用VS建两个项目(CustomControlSample, TestControl), 项目类型分别是类库(不是内裤!!!), Windows应用程序.

 

using System.Windows.Forms;
 using System.Drawing;
 
 namespace CustomControlSample
 {
   public class FirstControl : Control
   {
       private int simpleField;
 
        public int SimpleProperty
        {
            get { return simpleField; }
            set { simpleField = value; }
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            e.Graphics.DrawRectangle(Pens.Red, new Rectangle(Point.Empty, new Size(Width - 1, Height - 1)));
        }
    }
}
 
写完后 生成 DLL 文件 
然后在 WINFORM 窗体 引用这个DLL 文件 
 
 
 

只有一个属性的控件!!!
拖到windows 窗体上:

在属性浏览器中可以看到该控件的唯一属性:

一个最最简单的Dot net winform控件做好了.

 

 

     在这里用到 属性(Attribute),  属性(Attribute)与属性(Property)不同, 前者是用来描述编程元素的,后都是用来描述对象的. 简单地说, 错了不要骂我!!!
将上代码稍稍改动了一点:

 

 using System.ComponentModel;
 using System.Windows.Forms;
 using System.Drawing;
 
 namespace CustomControlSample
 {
public class FirstControl : Control
{
private int simpleField;
 
        [Category("我是属性,我怕谁!")]
        [Description("我是属性,故我在(属性浏览器中)!")]
 public int SimpleProperty
 {
 get { return simpleField; }
 set { simpleField = value; }
        }
 
 protected override void OnPaint(PaintEventArgs e)
 {
 base.OnPaint(e);
            e.Graphics.DrawRectangle(Pens.Red, new Rectangle(Point.Empty, new Size(Width - 1, Height - 1)));
        }
    }
}

posted @ 2007-05-18 01:31  桂圆  阅读(736)  评论(0编辑  收藏  举报