(五十二)c#Winform自定义控件-LED数字

2023-09-25 7 0

前提

入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。

GitHub:https://github.com/kwwwvagaa/NetWinformControl

码云:https://gitee.com/kwwwvagaa/net_winform_custom_control.git

如果觉得写的还行,请点个 star 支持一下吧

欢迎前来交流探讨: 企鹅群568015492 企鹅群568015492

麻烦博客下方点个【推荐】,谢谢

NuGet

Install-Package HZH_Controls

目录

https://blog.csdn.net/kwwwvagaa/article/details/100586547

用处及效果

 

 

准备工作

使用GID+画的,不了解的话请自行百度

开始

添加一个类UCLEDNum ,继承UserControl

将数字拆分为单独的字,然后根据显示位置进行画出来,将显示位置定义为如下所示

复制代码

    /* 显示位置序号*  ****1****  *      *  *  6      2*  *      **  ****7****  *      **  5      3*  *      **  ****4****/

复制代码

从上面可以看出,定义了1-7的位置,然后定义一个数字对应的显示列表

复制代码

 1  private static Dictionary<char, int[]> m_nums = new Dictionary<char, int[]>();2         static UCLEDNum()3         {4             m_nums['0'] = new int[] { 1, 2, 3, 4, 5, 6 };5             m_nums['1'] = new int[] { 2, 3 };6             m_nums['2'] = new int[] { 1, 2, 5, 4, 7 };7             m_nums['3'] = new int[] { 1, 2, 7, 3, 4 };8             m_nums['4'] = new int[] { 2, 3, 6, 7 };9             m_nums['5'] = new int[] { 1, 6, 7, 3, 4 };
10             m_nums['6'] = new int[] { 1, 6, 5, 4, 3, 7 };
11             m_nums['7'] = new int[] { 1, 2, 3 };
12             m_nums['8'] = new int[] { 1, 2, 3, 4, 5, 6, 7 };
13             m_nums['9'] = new int[] { 1, 2, 3, 4, 7, 6 };
14             m_nums['-'] = new int[] { 7 };
15             m_nums[':'] = new int[0];
16             m_nums['.'] = new int[0];
17         }

复制代码

你看到了还有“-”,“:”,“.”这3个符号,是为了时间和数字时候使用

然后定义一个矩形区域来用作绘画区域,并且在SizeChanged事件中赋值

Rectangle m_drawRect = Rectangle.Empty;void LEDNum_SizeChanged(object sender, EventArgs e){m_drawRect = new Rectangle(1, 1, this.Width - 2, this.Height - 2);}

然后就是几个属性

复制代码

 1   private char m_value = '0';2 3         [Description("值"), Category("自定义")]4         public char Value5         {6             get { return m_value; }7             set8             {9                 if (!m_nums.ContainsKey(value))
10                 {
11                     return;
12                 }
13                 if (m_value != value)
14                 {
15                     m_value = value;
16                     Refresh();
17                 }
18             }
19         }
20 
21         private int m_lineWidth = 8;
22 
23         [Description("线宽度,为了更好的显示效果,请使用偶数"), Category("自定义")]
24         public int LineWidth
25         {
26             get { return m_lineWidth; }
27             set
28             {
29                 m_lineWidth = value;
30                 Refresh();
31             }
32         }
33 
34         [Description("颜色"), Category("自定义")]
35         public override System.Drawing.Color ForeColor
36         {
37             get
38             {
39                 return base.ForeColor;
40             }
41             set
42             {
43                 base.ForeColor = value;
44             }
45         }

复制代码

最重要的重绘

复制代码

  1 protected override void OnPaint(PaintEventArgs e)2         {3             base.OnPaint(e);4             e.Graphics.SetGDIHigh();5             if (m_value == '.')6             {7                 Rectangle r2 = new Rectangle(m_drawRect.Left + (m_drawRect.Width - m_lineWidth) / 2, m_drawRect.Bottom - m_lineWidth * 2, m_lineWidth, m_lineWidth);8                 e.Graphics.FillRectangle(new SolidBrush(ForeColor), r2);9             }10             else if (m_value == ':')11             {12                 Rectangle r1 = new Rectangle(m_drawRect.Left + (m_drawRect.Width - m_lineWidth) / 2, m_drawRect.Top + (m_drawRect.Height / 2 - m_lineWidth) / 2, m_lineWidth, m_lineWidth);13                 e.Graphics.FillRectangle(new SolidBrush(ForeColor), r1);14                 Rectangle r2 = new Rectangle(m_drawRect.Left + (m_drawRect.Width - m_lineWidth) / 2, m_drawRect.Top + (m_drawRect.Height / 2 - m_lineWidth) / 2 + m_drawRect.Height / 2, m_lineWidth, m_lineWidth);15                 e.Graphics.FillRectangle(new SolidBrush(ForeColor), r2);16             }17             else18             {19                 int[] vs = m_nums[m_value];20                 if (vs.Contains(1))21                 {22                     GraphicsPath path = new GraphicsPath();23                     path.AddLines(new Point[] 24                 {25                     new Point(m_drawRect.Left + 2, m_drawRect.Top),26                     new Point(m_drawRect.Right - 2, m_drawRect.Top),27                     new Point(m_drawRect.Right - m_lineWidth-2, m_drawRect.Top+m_lineWidth),28                     new Point(m_drawRect.Left + m_lineWidth+2, m_drawRect.Top+m_lineWidth),29                     new Point(m_drawRect.Left + 2, m_drawRect.Top)30                 });31                     path.CloseAllFigures();32                     e.Graphics.FillPath(new SolidBrush(ForeColor), path);33                 }34 35                 if (vs.Contains(2))36                 {37                     GraphicsPath path = new GraphicsPath();38                     path.AddLines(new Point[] 39                 {40                     new Point(m_drawRect.Right, m_drawRect.Top),41                     new Point(m_drawRect.Right, m_drawRect.Top+(m_drawRect.Height-m_lineWidth-4)/2),42                     new Point(m_drawRect.Right-m_lineWidth/2, m_drawRect.Top+(m_drawRect.Height-m_lineWidth-4)/2+m_lineWidth/2),43                     new Point(m_drawRect.Right-m_lineWidth, m_drawRect.Top+(m_drawRect.Height-m_lineWidth-4)/2),44                     new Point(m_drawRect.Right-m_lineWidth, m_drawRect.Top+m_lineWidth),45                     new Point(m_drawRect.Right, m_drawRect.Top)46                 });47                     path.CloseAllFigures();48                     e.Graphics.FillPath(new SolidBrush(ForeColor), path);49                 }50 51                 if (vs.Contains(3))52                 {53                     GraphicsPath path = new GraphicsPath();54                     path.AddLines(new Point[] 55                 {56                     new Point(m_drawRect.Right, m_drawRect.Bottom-(m_drawRect.Height-m_lineWidth-4)/2),57                     new Point(m_drawRect.Right, m_drawRect.Bottom),58                     new Point(m_drawRect.Right-m_lineWidth, m_drawRect.Bottom-m_lineWidth),59                     new Point(m_drawRect.Right-m_lineWidth, m_drawRect.Bottom-(m_drawRect.Height-m_lineWidth-4)/2),60                     new Point(m_drawRect.Right-m_lineWidth/2, m_drawRect.Bottom-(m_drawRect.Height-m_lineWidth-4)/2-m_lineWidth/2),61                     new Point(m_drawRect.Right, m_drawRect.Bottom-(m_drawRect.Height-m_lineWidth-4)/2),                 62                 });63                     path.CloseAllFigures();64                     e.Graphics.FillPath(new SolidBrush(ForeColor), path);65                 }66 67                 if (vs.Contains(4))68                 {69                     GraphicsPath path = new GraphicsPath();70                     path.AddLines(new Point[] 71                 {72                     new Point(m_drawRect.Left + 2, m_drawRect.Bottom),73                     new Point(m_drawRect.Right - 2, m_drawRect.Bottom),74                     new Point(m_drawRect.Right - m_lineWidth-2, m_drawRect.Bottom-m_lineWidth),75                     new Point(m_drawRect.Left + m_lineWidth+2, m_drawRect.Bottom-m_lineWidth),76                     new Point(m_drawRect.Left + 2, m_drawRect.Bottom)77                 });78                     path.CloseAllFigures();79                     e.Graphics.FillPath(new SolidBrush(ForeColor), path);80                 }81 82                 if (vs.Contains(5))83                 {84                     GraphicsPath path = new GraphicsPath();85                     path.AddLines(new Point[] 86                 {87                     new Point(m_drawRect.Left, m_drawRect.Bottom-(m_drawRect.Height-m_lineWidth-4)/2),88                     new Point(m_drawRect.Left, m_drawRect.Bottom),89                     new Point(m_drawRect.Left+m_lineWidth, m_drawRect.Bottom-m_lineWidth),90                     new Point(m_drawRect.Left+m_lineWidth, m_drawRect.Bottom-(m_drawRect.Height-m_lineWidth-4)/2),91                     new Point(m_drawRect.Left+m_lineWidth/2, m_drawRect.Bottom-(m_drawRect.Height-m_lineWidth-4)/2-m_lineWidth/2),92                     new Point(m_drawRect.Left, m_drawRect.Bottom-(m_drawRect.Height-m_lineWidth-4)/2),                 93                 });94                     path.CloseAllFigures();95                     e.Graphics.FillPath(new SolidBrush(ForeColor), path);96                 }97 98 99                 if (vs.Contains(6))
100                 {
101                     GraphicsPath path = new GraphicsPath();
102                     path.AddLines(new Point[] 
103                 {
104                     new Point(m_drawRect.Left, m_drawRect.Top),
105                     new Point(m_drawRect.Left, m_drawRect.Top+(m_drawRect.Height-m_lineWidth-4)/2),
106                     new Point(m_drawRect.Left+m_lineWidth/2, m_drawRect.Top+(m_drawRect.Height-m_lineWidth-4)/2+m_lineWidth/2),
107                     new Point(m_drawRect.Left+m_lineWidth, m_drawRect.Top+(m_drawRect.Height-m_lineWidth-4)/2),
108                     new Point(m_drawRect.Left+m_lineWidth, m_drawRect.Top+m_lineWidth),
109                     new Point(m_drawRect.Left, m_drawRect.Top)
110                 });
111                     path.CloseAllFigures();
112                     e.Graphics.FillPath(new SolidBrush(ForeColor), path);
113                 }
114 
115                 if (vs.Contains(7))
116                 {
117                     GraphicsPath path = new GraphicsPath();
118                     path.AddLines(new Point[] 
119                 {
120                     new Point(m_drawRect.Left+m_lineWidth/2, m_drawRect.Height/2+1),            
121                     new Point(m_drawRect.Left+m_lineWidth, m_drawRect.Height/2-m_lineWidth/2+1),    
122                     new Point(m_drawRect.Right-m_lineWidth, m_drawRect.Height/2-m_lineWidth/2+1),
123                     new Point(m_drawRect.Right-m_lineWidth/2, m_drawRect.Height/2+1),
124                     new Point(m_drawRect.Right-m_lineWidth, m_drawRect.Height/2+m_lineWidth/2+1),
125                     new Point(m_drawRect.Left+m_lineWidth, m_drawRect.Height/2+m_lineWidth/2+1),    
126                     new Point(m_drawRect.Left+m_lineWidth/2, m_drawRect.Height/2+1)
127                 });
128                     path.CloseAllFigures();
129                     e.Graphics.FillPath(new SolidBrush(ForeColor), path);
130                 }
131             }
132         }

复制代码

完工,看下完整代码和效果

 View Code

 

 

 以上就是单个字符的了

 

=======================分割线==========================

下面对数字控件处理

添加一个用户控件UCLEDNums

添加一点属性

复制代码

 1 private string m_value;2 3         [Description("值"), Category("自定义")]4         public string Value5         {6             get { return m_value; }7             set8             {9                 m_value = value;
10                 ReloadValue();
11             }
12         }
13 
14         private int m_lineWidth = 8;
15 
16         [Description("线宽度,为了更好的显示效果,请使用偶数"), Category("自定义")]
17         public int LineWidth
18         {
19             get { return m_lineWidth; }
20             set
21             {
22                 m_lineWidth = value;
23                 foreach (UCLEDNum c in this.Controls)
24                 {
25                     c.LineWidth = value;
26                 }
27             }
28         }
29 
30         [Description("颜色"), Category("自定义")]
31         public override System.Drawing.Color ForeColor
32         {
33             get
34             {
35                 return base.ForeColor;
36             }
37             set
38             {
39                 base.ForeColor = value;
40                 foreach (UCLEDNum c in this.Controls)
41                 {
42                     c.ForeColor = value;
43                 }
44             }
45         }
46 
47         public override RightToLeft RightToLeft
48         {
49             get
50             {
51                 return base.RightToLeft;
52             }
53             set
54             {
55                 base.RightToLeft = value;
56                 ReloadValue();
57             }
58         }

复制代码

加载控件的函数

复制代码

 1  private void ReloadValue()2         {3             try4             {5                 ControlHelper.FreezeControl(this, true);6                 this.Controls.Clear();7                 foreach (var item in m_value)8                 {9                     UCLEDNum uc = new UCLEDNum();
10                     if (RightToLeft == System.Windows.Forms.RightToLeft.Yes)
11                         uc.Dock = DockStyle.Right;
12                     else
13                         uc.Dock = DockStyle.Left;
14                     uc.Value = item;
15                     uc.ForeColor = ForeColor;
16                     uc.LineWidth = m_lineWidth;
17                     this.Controls.Add(uc);
18                     if (RightToLeft == System.Windows.Forms.RightToLeft.Yes)
19                         uc.SendToBack();
20                     else
21                         uc.BringToFront();
22                 }
23             }
24             finally
25             {
26                 ControlHelper.FreezeControl(this, false);
27             }
28         }

复制代码

完整代码及效果

 View Code

 View Code

 

 

 =======================分割线==========================

下面是日期类控件了,这里偷懒,分成3个控件,分别是日期控件,时间控件,日期时间控件

先说日期控件,

添加一个用户控件UCLEDData

添加属性

复制代码

 1 private DateTime m_value;2 3         [Description("值"), Category("自定义")]4         public DateTime Value5         {6             get { return m_value; }7             set8             {9                 m_value = value;
10                 string str = value.ToString("yyyy-MM-dd");
11                 for (int i = 0; i < str.Length; i++)
12                 {
13                     ((UCLEDNum)this.tableLayoutPanel1.Controls.Find("D" + (i + 1), false)[0]).Value = str[i];
14                 }
15             }
16         }
17 
18         private int m_lineWidth = 8;
19 
20         [Description("线宽度,为了更好的显示效果,请使用偶数"), Category("自定义")]
21         public int LineWidth
22         {
23             get { return m_lineWidth; }
24             set
25             {
26                 m_lineWidth = value;
27                 foreach (UCLEDNum c in this.tableLayoutPanel1.Controls)
28                 {
29                     c.LineWidth = value;
30                 }
31             }
32         }
33 
34         [Description("颜色"), Category("自定义")]
35         public override System.Drawing.Color ForeColor
36         {
37             get
38             {
39                 return base.ForeColor;
40             }
41             set
42             {
43                 base.ForeColor = value;
44                 foreach (UCLEDNum c in this.tableLayoutPanel1.Controls)
45                 {
46                     c.ForeColor = value;
47                 }
48             }
49         }

复制代码

完整代码

 View Code

 View Code

 =======================分割线==========================

时间控件

添加一个用户控件UCLEDTime

添加属性

复制代码

 1  private DateTime m_value;2 3         [Description("值"), Category("自定义")]4         public DateTime Value5         {6             get { return m_value; }7             set8             {9                 m_value = value;
10                 string str = value.ToString("HH:mm:ss");
11                 for (int i = 0; i < str.Length; i++)
12                 {
13                     ((UCLEDNum)this.tableLayoutPanel1.Controls.Find("D" + (i + 1), false)[0]).Value = str[i];
14                 }
15             }
16         }
17 
18         private int m_lineWidth = 8;
19 
20         [Description("线宽度,为了更好的显示效果,请使用偶数"), Category("自定义")]
21         public int LineWidth
22         {
23             get { return m_lineWidth; }
24             set
25             {
26                 m_lineWidth = value;
27                 foreach (UCLEDNum c in this.tableLayoutPanel1.Controls)
28                 {
29                     c.LineWidth = value;
30                 }
31             }
32         }
33 
34         [Description("颜色"), Category("自定义")]
35         public override System.Drawing.Color ForeColor
36         {
37             get
38             {
39                 return base.ForeColor;
40             }
41             set
42             {
43                 base.ForeColor = value;
44                 foreach (UCLEDNum c in this.tableLayoutPanel1.Controls)
45                 {
46                     c.ForeColor = value;
47                 }
48             }
49         }

复制代码

全部代码

 View Code

 View Code

 =======================分割线==========================

日期时间控件

添加一个用户控件UCLEDDataTime

添加属性

复制代码

 1  private DateTime m_value;2 3         [Description("值"), Category("自定义")]4         public DateTime Value5         {6             get { return m_value; }7             set8             {9                 m_value = value;
10                 string str = value.ToString("yyyy-MM-dd HH:mm:ss");
11                 for (int i = 0; i < str.Length; i++)
12                 {
13                     if (i == 10)
14                         continue;
15                     ((UCLEDNum)this.tableLayoutPanel1.Controls.Find("D" + (i + 1), false)[0]).Value = str[i];
16                 }
17             }
18         }
19 
20         private int m_lineWidth = 8;
21 
22         [Description("线宽度,为了更好的显示效果,请使用偶数"), Category("自定义")]
23         public int LineWidth
24         {
25             get { return m_lineWidth; }
26             set
27             {
28                 m_lineWidth = value;
29                 foreach (UCLEDNum c in this.tableLayoutPanel1.Controls)
30                 {
31                     c.LineWidth = value;
32                 }
33             }
34         }
35 
36         [Description("颜色"), Category("自定义")]
37         public override System.Drawing.Color ForeColor
38         {
39             get
40             {
41                 return base.ForeColor;
42             }
43             set
44             {
45                 base.ForeColor = value;
46                 foreach (UCLEDNum c in this.tableLayoutPanel1.Controls)
47                 {
48                     c.ForeColor = value;
49                 }
50             }
51         }

复制代码

全部代码

using 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
{public partial class UCLEDDataTime : UserControl{private DateTime m_value;[Description("值"), Category("自定义")]public DateTime Value{get { return m_value; }set{m_value = value;string str = value.ToString("yyyy-MM-dd HH:mm:ss");for (int i = 0; i < str.Length; i++){if (i == 10)continue;((UCLEDNum)this.tableLayoutPanel1.Controls.Find("D" + (i + 1), false)[0]).Value = str[i];}}}private int m_lineWidth = 8;[Description("线宽度,为了更好的显示效果,请使用偶数"), Category("自定义")]public int LineWidth{get { return m_lineWidth; }set{m_lineWidth = value;foreach (UCLEDNum c in this.tableLayoutPanel1.Controls){c.LineWidth = value;}}}[Description("颜色"), Category("自定义")]public override System.Drawing.Color ForeColor{get{return base.ForeColor;}set{base.ForeColor = value;foreach (UCLEDNum c in this.tableLayoutPanel1.Controls){c.ForeColor = value;}}}public UCLEDDataTime(){InitializeComponent();Value = DateTime.Now;}}
}
namespace HZH_Controls.Controls
{partial class UCLEDDataTime{/// <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.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();this.D1 = new HZH_Controls.Controls.UCLEDNum();this.D2 = new HZH_Controls.Controls.UCLEDNum();this.D3 = new HZH_Controls.Controls.UCLEDNum();this.D4 = new HZH_Controls.Controls.UCLEDNum();this.D5 = new HZH_Controls.Controls.UCLEDNum();this.D6 = new HZH_Controls.Controls.UCLEDNum();this.D7 = new HZH_Controls.Controls.UCLEDNum();this.D8 = new HZH_Controls.Controls.UCLEDNum();this.D9 = new HZH_Controls.Controls.UCLEDNum();this.D10 = new HZH_Controls.Controls.UCLEDNum();this.D12 = new HZH_Controls.Controls.UCLEDNum();this.D13 = new HZH_Controls.Controls.UCLEDNum();this.D14 = new HZH_Controls.Controls.UCLEDNum();this.D15 = new HZH_Controls.Controls.UCLEDNum();this.D16 = new HZH_Controls.Controls.UCLEDNum();this.D17 = new HZH_Controls.Controls.UCLEDNum();this.D18 = new HZH_Controls.Controls.UCLEDNum();this.D19 = new HZH_Controls.Controls.UCLEDNum();this.tableLayoutPanel1.SuspendLayout();this.SuspendLayout();// // tableLayoutPanel1// this.tableLayoutPanel1.ColumnCount = 19;this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 5.263158F));this.tableLayoutPanel1.Controls.Add(this.D1, 0, 0);this.tableLayoutPanel1.Controls.Add(this.D2, 1, 0);this.tableLayoutPanel1.Controls.Add(this.D3, 2, 0);this.tableLayoutPanel1.Controls.Add(this.D4, 3, 0);this.tableLayoutPanel1.Controls.Add(this.D5, 4, 0);this.tableLayoutPanel1.Controls.Add(this.D6, 5, 0);this.tableLayoutPanel1.Controls.Add(this.D7, 6, 0);this.tableLayoutPanel1.Controls.Add(this.D8, 7, 0);this.tableLayoutPanel1.Controls.Add(this.D9, 8, 0);this.tableLayoutPanel1.Controls.Add(this.D10, 9, 0);this.tableLayoutPanel1.Controls.Add(this.D12, 11, 0);this.tableLayoutPanel1.Controls.Add(this.D13, 12, 0);this.tableLayoutPanel1.Controls.Add(this.D14, 13, 0);this.tableLayoutPanel1.Controls.Add(this.D15, 14, 0);this.tableLayoutPanel1.Controls.Add(this.D16, 15, 0);this.tableLayoutPanel1.Controls.Add(this.D17, 16, 0);this.tableLayoutPanel1.Controls.Add(this.D18, 17, 0);this.tableLayoutPanel1.Controls.Add(this.D19, 18, 0);this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);this.tableLayoutPanel1.Name = "tableLayoutPanel1";this.tableLayoutPanel1.RowCount = 1;this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));this.tableLayoutPanel1.Size = new System.Drawing.Size(650, 58);this.tableLayoutPanel1.TabIndex = 1;// // D1// this.D1.Dock = System.Windows.Forms.DockStyle.Fill;this.D1.LineWidth = 8;this.D1.Location = new System.Drawing.Point(3, 3);this.D1.Name = "D1";this.D1.Size = new System.Drawing.Size(28, 52);this.D1.TabIndex = 0;this.D1.Value = '2';// // D2// this.D2.Dock = System.Windows.Forms.DockStyle.Fill;this.D2.LineWidth = 8;this.D2.Location = new System.Drawing.Point(37, 3);this.D2.Name = "D2";this.D2.Size = new System.Drawing.Size(28, 52);this.D2.TabIndex = 1;this.D2.Value = '0';// // D3// this.D3.Dock = System.Windows.Forms.DockStyle.Fill;this.D3.LineWidth = 8;this.D3.Location = new System.Drawing.Point(71, 3);this.D3.Name = "D3";this.D3.Size = new System.Drawing.Size(28, 52);this.D3.TabIndex = 2;this.D3.Value = '1';// // D4// this.D4.Dock = System.Windows.Forms.DockStyle.Fill;this.D4.LineWidth = 8;this.D4.Location = new System.Drawing.Point(105, 3);this.D4.Name = "D4";this.D4.Size = new System.Drawing.Size(28, 52);this.D4.TabIndex = 3;this.D4.Value = '9';// // D5// this.D5.Dock = System.Windows.Forms.DockStyle.Fill;this.D5.LineWidth = 8;this.D5.Location = new System.Drawing.Point(139, 3);this.D5.Name = "D5";this.D5.Size = new System.Drawing.Size(28, 52);this.D5.TabIndex = 4;this.D5.Value = '-';// // D6// this.D6.Dock = System.Windows.Forms.DockStyle.Fill;this.D6.LineWidth = 8;this.D6.Location = new System.Drawing.Point(173, 3);this.D6.Name = "D6";this.D6.Size = new System.Drawing.Size(28, 52);this.D6.TabIndex = 5;this.D6.Value = '0';// // D7// this.D7.Dock = System.Windows.Forms.DockStyle.Fill;this.D7.LineWidth = 8;this.D7.Location = new System.Drawing.Point(207, 3);this.D7.Name = "D7";this.D7.Size = new System.Drawing.Size(28, 52);this.D7.TabIndex = 6;this.D7.Value = '8';// // D8// this.D8.Dock = System.Windows.Forms.DockStyle.Fill;this.D8.LineWidth = 8;this.D8.Location = new System.Drawing.Point(241, 3);this.D8.Name = "D8";this.D8.Size = new System.Drawing.Size(28, 52);this.D8.TabIndex = 7;this.D8.Value = '-';// // D9// this.D9.Dock = System.Windows.Forms.DockStyle.Fill;this.D9.LineWidth = 8;this.D9.Location = new System.Drawing.Point(275, 3);this.D9.Name = "D9";this.D9.Size = new System.Drawing.Size(28, 52);this.D9.TabIndex = 8;this.D9.Value = '0';// // D10// this.D10.Dock = System.Windows.Forms.DockStyle.Fill;this.D10.LineWidth = 8;this.D10.Location = new System.Drawing.Point(309, 3);this.D10.Name = "D10";this.D10.Size = new System.Drawing.Size(28, 52);this.D10.TabIndex = 9;this.D10.Value = '1';// // D12// this.D12.Dock = System.Windows.Forms.DockStyle.Fill;this.D12.LineWidth = 8;this.D12.Location = new System.Drawing.Point(377, 3);this.D12.Name = "D12";this.D12.Size = new System.Drawing.Size(28, 52);this.D12.TabIndex = 10;this.D12.Value = '2';// // D13// this.D13.Dock = System.Windows.Forms.DockStyle.Fill;this.D13.LineWidth = 8;this.D13.Location = new System.Drawing.Point(411, 3);this.D13.Name = "D13";this.D13.Size = new System.Drawing.Size(28, 52);this.D13.TabIndex = 11;this.D13.Value = '3';// // D14// this.D14.Dock = System.Windows.Forms.DockStyle.Fill;this.D14.LineWidth = 8;this.D14.Location = new System.Drawing.Point(445, 3);this.D14.Name = "D14";this.D14.Size = new System.Drawing.Size(28, 52);this.D14.TabIndex = 12;this.D14.Value = ':';// // D15// this.D15.Dock = System.Windows.Forms.DockStyle.Fill;this.D15.LineWidth = 8;this.D15.Location = new System.Drawing.Point(479, 3);this.D15.Name = "D15";this.D15.Size = new System.Drawing.Size(28, 52);this.D15.TabIndex = 13;this.D15.Value = '0';// // D16// this.D16.Dock = System.Windows.Forms.DockStyle.Fill;this.D16.LineWidth = 8;this.D16.Location = new System.Drawing.Point(513, 3);this.D16.Name = "D16";this.D16.Size = new System.Drawing.Size(28, 52);this.D16.TabIndex = 14;this.D16.Value = '1';// // D17// this.D17.Dock = System.Windows.Forms.DockStyle.Fill;this.D17.LineWidth = 8;this.D17.Location = new System.Drawing.Point(547, 3);this.D17.Name = "D17";this.D17.Size = new System.Drawing.Size(28, 52);this.D17.TabIndex = 15;this.D17.Value = ':';// // D18// this.D18.Dock = System.Windows.Forms.DockStyle.Fill;this.D18.LineWidth = 8;this.D18.Location = new System.Drawing.Point(581, 3);this.D18.Name = "D18";this.D18.Size = new System.Drawing.Size(28, 52);this.D18.TabIndex = 16;this.D18.Value = '5';// // D19// this.D19.Dock = System.Windows.Forms.DockStyle.Fill;this.D19.LineWidth = 8;this.D19.Location = new System.Drawing.Point(615, 3);this.D19.Name = "D19";this.D19.Size = new System.Drawing.Size(32, 52);this.D19.TabIndex = 17;this.D19.Value = '3';// // UCLEDDataTime// this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;this.Controls.Add(this.tableLayoutPanel1);this.Name = "UCLEDDataTime";this.Size = new System.Drawing.Size(650, 58);this.tableLayoutPanel1.ResumeLayout(false);this.ResumeLayout(false);}#endregionprivate System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;private UCLEDNum D1;private UCLEDNum D2;private UCLEDNum D3;private UCLEDNum D4;private UCLEDNum D5;private UCLEDNum D6;private UCLEDNum D7;private UCLEDNum D8;private UCLEDNum D9;private UCLEDNum D10;private UCLEDNum D12;private UCLEDNum D13;private UCLEDNum D14;private UCLEDNum D15;private UCLEDNum D16;private UCLEDNum D17;private UCLEDNum D18;private UCLEDNum D19;}
}

最后的话

如果你喜欢的话,请到 https://gitee.com/kwwwvagaa/net_winform_custom_control 点个星星吧

代码编程
赞赏

相关文章

不伤原图电脑在线去水印网站
在线视频转换器工具
图片如何在线无痕去除水印
图片带满屏水印怎么去除?
超详细Hyperledger Fabric2.3.3开发教程
入门卷积神经网络必备,基础、理论、实战一网打尽!