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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM