(二)C# Winform自定义控件 您所在的位置:网站首页 epg和pbg是什么意思 (二)C# Winform自定义控件

(二)C# Winform自定义控件

#(二)C# Winform自定义控件| 来源: 网络整理| 查看: 265

准备工作

该控件将继承基类控件UCControlBase,如果你还对UCControlBase不了解的下,

请移步 (一)c#Winform自定义控件-基类控件 查看

首先我们了解下要做的是什么,我们需要做一个可以自定义填充颜色,有圆角边框,有角标的按钮

开始

添加一个用户控件,命名为UCBtnExt ,继承 UCControlBase

先来看看我们按钮需要支持的属性吧

#region 字段属性[Description("是否显示角标"), Category("自定义")]public bool IsShowTips{    get    {        return this.lblTips.Visible;    }    set    {        this.lblTips.Visible = value;    }}[Description("角标文字"), Category("自定义")]public string TipsText{    get    {        return this.lblTips.Text;    }    set    {        this.lblTips.Text = value;    }}private Color _btnBackColor = Color.White;[Description("按钮背景色"), Category("自定义")]public Color BtnBackColor{    get { return _btnBackColor; }    set    {        _btnBackColor = value;        this.BackColor = value;    }}private Color _btnForeColor = Color.Black;/// /// 按钮字体颜色/// [Description("按钮字体颜色"), Category("自定义")]public Color BtnForeColor{    get { return _btnForeColor; }    set    {        _btnForeColor = value;        this.lbl.ForeColor = value;    }}private Font _btnFont = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));/// /// 按钮字体/// [Description("按钮字体"), Category("自定义")]public Font BtnFont{    get { return _btnFont; }    set    {        _btnFont = value;        this.lbl.Font = value;    }}/// /// 按钮点击事件/// [Description("按钮点击事件"), Category("自定义")]public event EventHandler BtnClick;private string _btnText;/// /// 按钮文字/// [Description("按钮文字"), Category("自定义")]public string BtnText{    get { return _btnText; }    set    {        _btnText = value;        lbl.Text = value;    }}#endregion

有了属性是不是就更明了呢

还有最后关键的一点东西,就是按钮的点击事件

private void lbl_MouseDown(object sender, MouseEventArgs e){    if (this.BtnClick != null)        BtnClick(this, e);}

至此基本上就完工了,下面列出了完整的代码

// 版权所有  黄正辉  交流群:568015492   QQ:623128629// 文件名称:UCBtnExt.cs// 创建日期:2019-08-15 15:57:36// 功能描述:按钮// 项目地址:https://gitee.com/kwwwvagaa/net_winform_custom_controlusing System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Linq;using System.Text;using System.Windows.Forms;namespace HZH_Controls.Controls{    [DefaultEvent("BtnClick")]    public partial class UCBtnExt : UCControlBase    {        #region 字段属性        [Description("是否显示角标"), Category("自定义")]        public bool IsShowTips        {            get            {                return this.lblTips.Visible;            }            set            {                this.lblTips.Visible = value;            }        }        [Description("角标文字"), Category("自定义")]        public string TipsText        {            get            {                return this.lblTips.Text;            }            set            {                this.lblTips.Text = value;            }        }        private Color _btnBackColor = Color.White;        [Description("按钮背景色"), Category("自定义")]        public Color BtnBackColor        {            get { return _btnBackColor; }            set            {                _btnBackColor = value;                this.BackColor = value;            }        }        private Color _btnForeColor = Color.Black;        ///         /// 按钮字体颜色        ///         [Description("按钮字体颜色"), Category("自定义")]        public Color BtnForeColor        {            get { return _btnForeColor; }            set            {                _btnForeColor = value;                this.lbl.ForeColor = value;            }        }        private Font _btnFont = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));        ///         /// 按钮字体        ///         [Description("按钮字体"), Category("自定义")]        public Font BtnFont        {            get { return _btnFont; }            set            {                _btnFont = value;                this.lbl.Font = value;            }        }        ///         /// 按钮点击事件        ///         [Description("按钮点击事件"), Category("自定义")]        public event EventHandler BtnClick;        private string _btnText;        ///         /// 按钮文字        ///         [Description("按钮文字"), Category("自定义")]        public string BtnText        {            get { return _btnText; }            set            {                _btnText = value;                lbl.Text = value;            }        }        #endregion        public UCBtnExt()        {            InitializeComponent();            this.TabStop = false;        }        private void lbl_MouseDown(object sender, MouseEventArgs e)        {            if (this.BtnClick != null)                BtnClick(this, e);        }    }}namespace HZH_Controls.Controls{    public partial class UCBtnExt    {        ///          /// 必需的设计器变量。        ///         private System.ComponentModel.IContainer components = null;        ///          /// 清理所有正在使用的资源。        ///         /// 如果应释放托管资源,为 true;否则为 false。        protected override void Dispose(bool disposing)        {            if (disposing && (components != null))            {                components.Dispose();            }            base.Dispose(disposing);        }        #region 组件设计器生成的代码        ///          /// 设计器支持所需的方法 - 不要        /// 使用代码编辑器修改此方法的内容。        ///         private void InitializeComponent()        {            this.components = new System.ComponentModel.Container();            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UCBtnExt));            this.lbl = new System.Windows.Forms.Label();            this.lblTips = new System.Windows.Forms.Label();            this.imageList1 = new System.Windows.Forms.ImageList(this.components);            this.SuspendLayout();            //             // lbl            //             this.lbl.BackColor = System.Drawing.Color.Transparent;            this.lbl.Dock = System.Windows.Forms.DockStyle.Fill;            this.lbl.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));            this.lbl.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;            this.lbl.Location = new System.Drawing.Point(0, 0);            this.lbl.Name = "lbl";            this.lbl.Size = new System.Drawing.Size(184, 60);            this.lbl.TabIndex = 0;            this.lbl.Text = "自定义按钮";            this.lbl.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;            this.lbl.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lbl_MouseDown);            //             // lblTips            //             this.lblTips.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));            this.lblTips.BackColor = System.Drawing.Color.Transparent;            this.lblTips.Font = new System.Drawing.Font("Arial Unicode MS", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));            this.lblTips.ForeColor = System.Drawing.Color.White;            this.lblTips.ImageIndex = 0;            this.lblTips.ImageList = this.imageList1;            this.lblTips.Location = new System.Drawing.Point(158, 0);            this.lblTips.Name = "lblTips";            this.lblTips.Size = new System.Drawing.Size(24, 24);            this.lblTips.TabIndex = 1;            this.lblTips.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;            this.lblTips.Visible = false;            //             // imageList1            //             this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));            this.imageList1.TransparentColor = System.Drawing.Color.Transparent;            this.imageList1.Images.SetKeyName(0, "tips.png");            //             // UCBtnExt            //             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;            this.BackColor = System.Drawing.Color.Transparent;            this.ConerRadius = 5;            this.Controls.Add(this.lblTips);            this.Controls.Add(this.lbl);            this.Cursor = System.Windows.Forms.Cursors.Hand;            this.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));            this.IsShowRect = true;            this.IsRadius = true;            this.Margin = new System.Windows.Forms.Padding(0);            this.Name = "UCBtnExt";            this.RectColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));            this.Size = new System.Drawing.Size(184, 60);            this.ResumeLayout(false);        }        #endregion        public System.Windows.Forms.Label lbl;        private System.Windows.Forms.Label lblTips;        private System.Windows.Forms.ImageList imageList1;    }}用处及效果

用处:按钮有什么用,我想我不用解释了吧

效果:

自定义按钮效果最后的话

如果你喜欢的话,请到 https://gitee.com/kwwwvagaa/net_winform_custom_control 点个星星吧,另本站转载地址:https://dotnet9.com/5252.html。

作者:冰封一夏出处:http://www.hzhcontrols.com/doc.html本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。GitHub:https://github.com/kwwwvagaa/NetWinformControl码云:https://gitee.com/kwwwvagaa/net_winform_custom_control.git

Dotnet9网站常驻编辑。

长按关注我,

欢迎技术交流!

-好东西要转发,设为"星标"★抢先看-

点击阅读原文,查看HZHControls站点更多博文。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有