zoukankan      html  css  js  c++  java
  • WinForm 自定义控件

    由3个标签组成

    直接代码

        public partial class Roof : UserControl
        {
            public Roof()
            {
                InitializeComponent();
            }
    
            private string text = "";//中间文字
            private float valueL = 0.00f;//默认值0.00
            private float valueR = 0.00f;
            private bool _isChecked = false;//是否选中
            private int roofId = 0;
    
    
            /// <summary>
            /// RoofId可用于作为唯一标识
            /// </summary>
            [Description("RoofId可用于作为唯一标识"), Category("自定义")]
            public int RoofId
            {
                get
                {
                    return this.roofId;
                }
                set
                {
                    this.roofId = value;
                }
            }
            /// <summary>
            /// 显示内容
            /// </summary>
            [Description("显示内容"), Category("自定义")]
            public string ShowText
            {
                get
                {
                    return this.text;
                }
                set
                {
                    this.text = value;
                    lbl_TxT.Text = value;
                }
            }
    
            /// <summary>
            /// 左边值
            /// </summary>
            [Description("左边值"), Category("自定义")]
            public float ValueL
            {
                get
                {
                    return this.valueL;
                }
                set
                {
                    this.valueL = value;
                    lbl_L.Text = value.ToString();
                }
            }
    
    
            /// <summary>
            /// 右边值
            /// </summary>
            [Description("右边值"), Category("自定义")]
            public float ValueR
            {
                get
                {
                    return this.valueR;
                }
                set
                {
                    this.valueR = value;
                    lbl_R.Text = value.ToString();
                }
            }
    
    
            /// <summary>
            /// 是否选中
            /// </summary>
            [Description("是否选中"), Category("自定义")]
            public bool IsChecked
            {
                get
                {
                    return this._isChecked;
                }
                set
                {
                    this._isChecked = value;
    
                    if (value) { lbl_TxT.BorderStyle = BorderStyle.FixedSingle; } else { lbl_TxT.BorderStyle = BorderStyle.None; }
    
                }
            }
    
            private void lbl_TxT_Click(object sender, EventArgs e)
            {
                if (_isChecked)
                {
                    lbl_TxT.BorderStyle = BorderStyle.None;
                    _isChecked = false;
                }
                else
                {
    
                    lbl_TxT.BorderStyle = BorderStyle.FixedSingle;
                    _isChecked = true;
                }
    
    
            }
    
    
            #region 定位各个控件位置
    
            private void roof_SizeChanged(object sender, EventArgs e)
            {
    
    
                AutoPosition();
    
            }
    
            private void AutoPosition()
            {
                var roofHeight = this.Height;
                var roofWidth = this.Width;
                lbl_L.Width = roofWidth / 3;
                lbl_R.Width = roofWidth / 3;
                lbl_TxT.Width = roofWidth / 3;
                lbl_L.Height = roofHeight - 1;
                lbl_R.Height = roofHeight - 1;
                lbl_TxT.Height = roofHeight - 1;
    
                //lbl_TxT.BackColor = Color.BlueViolet;
                //lbl_R.BackColor = Color.Red;
                //lbl_L.BackColor = Color.Blue;
    
                this.lbl_L.Location = new System.Drawing.Point(0, roofHeight / 2 - lbl_L.Height / 2);
                this.lbl_R.Location = new System.Drawing.Point(roofWidth - lbl_R.Width, roofHeight / 2 - lbl_R.Height / 2);
                this.lbl_TxT.Location = new System.Drawing.Point(roofWidth / 3, roofHeight / 2 - lbl_TxT.Height / 2);
            }
    
            #endregion
    
    
    
            /// <summary>
            /// 控件加载出来
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void roof_Load(object sender, EventArgs e)
            {
                lbl_R.Text = valueR.ToString();
                lbl_L.Text = valueL.ToString();
                //默认背景颜色
                this.BackColor = System.Drawing.Color.FromArgb(255, 255, 128);
                AutoPosition();
            }
        }
    Roof.cs
        partial class Roof
        {
            /// <summary> 
            /// 必需的设计器变量。
            /// </summary>
            private System.ComponentModel.IContainer components = null;
    
            /// <summary> 
            /// 清理所有正在使用的资源。
            /// </summary>
            /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
    
            #region 组件设计器生成的代码
    
            /// <summary> 
            /// 设计器支持所需的方法 - 不要修改
            /// 使用代码编辑器修改此方法的内容。
            /// </summary>
            private void InitializeComponent()
            {
                this.lbl_L = new System.Windows.Forms.Label();
                this.lbl_R = new System.Windows.Forms.Label();
                this.lbl_TxT = new System.Windows.Forms.Label();
                this.SuspendLayout();
                // 
                // lbl_L
                // 
                this.lbl_L.BackColor = System.Drawing.Color.Transparent;
                this.lbl_L.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.25F);
                this.lbl_L.Location = new System.Drawing.Point(0, 0);
                this.lbl_L.Name = "lbl_L";
                this.lbl_L.Size = new System.Drawing.Size(71, 29);
                this.lbl_L.TabIndex = 0;
                this.lbl_L.Text = "50.00";
                this.lbl_L.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
                this.lbl_L.Click += new System.EventHandler(this.lbl_TxT_Click);
                // 
                // lbl_R
                // 
                this.lbl_R.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.25F);
                this.lbl_R.Location = new System.Drawing.Point(183, 0);
                this.lbl_R.Name = "lbl_R";
                this.lbl_R.Size = new System.Drawing.Size(71, 29);
                this.lbl_R.TabIndex = 3;
                this.lbl_R.Text = "51.00";
                this.lbl_R.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
                this.lbl_R.Click += new System.EventHandler(this.lbl_TxT_Click);
                // 
                // lbl_TxT
                // 
                this.lbl_TxT.BackColor = System.Drawing.Color.Transparent;
                this.lbl_TxT.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.25F);
                this.lbl_TxT.Location = new System.Drawing.Point(101, 3);
                this.lbl_TxT.Name = "lbl_TxT";
                this.lbl_TxT.Size = new System.Drawing.Size(46, 22);
                this.lbl_TxT.TabIndex = 5;
                this.lbl_TxT.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
                this.lbl_TxT.Click += new System.EventHandler(this.lbl_TxT_Click);
                
                // 
                // roof
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.Controls.Add(this.lbl_TxT);
                this.Controls.Add(this.lbl_R);
                this.Controls.Add(this.lbl_L);
                this.Name = "roof";
                this.Size = new System.Drawing.Size(254, 29);
                this.Load += new System.EventHandler(this.roof_Load);
                this.SizeChanged += new System.EventHandler(this.roof_SizeChanged);
                this.ResumeLayout(false);
    
            }
    
            #endregion
    
            private System.Windows.Forms.Label lbl_L;
      
            private System.Windows.Forms.Label lbl_R;
            private System.Windows.Forms.Label lbl_TxT;
        }
    roof.Designer.cs

    效果图

  • 相关阅读:
    js 设计模式
    jquery 概述
    Node.js最新Web技术栈(2015年5月)
    this
    gulp
    bootstrap modal
    jsTree问题
    iterm2 学习笔记
    knowledge_map 修改笔记
    handsontable 问题
  • 原文地址:https://www.cnblogs.com/iiiii/p/12035571.html
Copyright © 2011-2022 走看看