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 @   方东信  阅读(644)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示