C#继承Control实用自定义控件

start
步骤一:新建类库项目,新建FirstControl.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;

namespace UcDll
{
    public class FirstControl : Control
    {

        public FirstControl()
        {

        }

        // ContentAlignment is an enumeration defined in the System.Drawing
        
// namespace that specifies the alignment of content on a drawing 
        
// surface.
        private ContentAlignment alignmentValue = ContentAlignment.MiddleLeft;

        [
        Category("Alignment"),
        Description("Specifies the alignment of text.")
        ]
        public ContentAlignment TextAlignment
        {

            get
            {
                return alignmentValue;
            }
            set
            {
                alignmentValue = value;

                // The Invalidate method invokes the OnPaint method described 
                
// in step 3.
                Invalidate();
            }
        }


        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            StringFormat style = new StringFormat();
            style.Alignment = StringAlignment.Near;
            switch (alignmentValue)
            {
                case ContentAlignment.MiddleLeft:
                    style.Alignment = StringAlignment.Near;
                    break;
                case ContentAlignment.MiddleRight:
                    style.Alignment = StringAlignment.Far;
                    break;
                case ContentAlignment.MiddleCenter:
                    style.Alignment = StringAlignment.Center;
                    break;
            }

            // Call the DrawString method of the System.Drawing class to write   
            
// text. Text and ClientRectangle are properties inherited from
            
// Control.
            e.Graphics.DrawString(
                Text,
                Font,
                new SolidBrush(ForeColor),
                ClientRectangle, style);

        }
    }
}
步骤二:编译,添加项目引用即可。
这里的重点是控件界面也要由自己绘。
url:http://greatverve.cnblogs.com/archive/2012/04/27/control-Inherit.html
参考:
http://www.cnblogs.com/guanjinke/category/77694.html
http://blog.csdn.net/yysyangyangyangshan/article/details/7078471
posted @ 2012-04-27 10:22  大气象  阅读(7078)  评论(3编辑  收藏  举报
http://www.tianqiweiqi.com