zoukankan      html  css  js  c++  java
  • 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
    凡事以大气象去面对,优秀是一种习惯。
    

      

    java新手自学群 626070845
    java/springboot/hadoop/JVM 群 4915800
    Hadoop/mongodb(搭建/开发/运维)Q群481975850
    GOLang Q1群:6848027
    GOLang Q2群:450509103
    GOLang Q3群:436173132
    GOLang Q4群:141984758
    GOLang Q5群:215535604
    C/C++/QT群 1414577
    单片机嵌入式/电子电路入门群群 306312845
    MUD/LIB/交流群 391486684
    Electron/koa/Nodejs/express 214737701
    大前端群vue/js/ts 165150391
    操作系统研发群:15375777
    汇编/辅助/破解新手群:755783453
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    wm_syscommand
    VC中的#pragma指令的用法
    C语言|博客作业03
    C语言|博客作业09
    C语言|博客作业07
    C语言|博客作业05
    C语言|博客作业02
    C语言|博客作业08
    C语言|博客作业06
    C语言|博客作业04
  • 原文地址:https://www.cnblogs.com/cfas/p/3111744.html
Copyright © 2011-2022 走看看