c#做的指示灯控件用法_C#--自定义控件-开发LED指示灯控件(带闪烁效果)
以下是学习笔记:
参考:https://www.bilibili.com/video/BV1eQ4y1M7ZY?p=5
效果如下:
思考:实现以上效果要用到哪些属性
颜色,是否有边框,外环宽度,是否高亮,中心颜色,是否闪烁,颜色列表,闪烁的频率
如果是开关,就需要bool类型 True,False颜色
如果是多种状态,当前值数值类型
常规操作:
一,自定义LED显示的控件
1,添加“用户控件”,命名MyLED
2,编写用户控件的MyLED的代码
public partial class MyLED : UserControl
{
public MyLED()
{
InitializeComponent();
#region 【1】设置双缓冲等属性
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.Selectable, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.SetStyle(ControlStyles.UserPaint, true);
#endregion
}
#region 【2】定义三个字段
private Graphics g;
private Pen p;
private SolidBrush sb;
#endregion
#region 【3】添加一个设置Graphics的方法
private void SetGraphics(Graphics g)
{
//设置画布的属性
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
}
#endregion
#region 【4】根据实际控件分析的结果,创建属性
private Color ledColor = Color.Green;
[Category("jason控件属性")]
[Description("LED指示灯演示")]
public Color LedColor
{
get { return ledColor; }
set
{
ledColor = value;
this.Invalidate();
}
}
#endregion
#region 【5】创建重绘的事件
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
g = e.Graphics;//获取画布
SetGraphics(g);//设置画布
//情况1:如果宽度大于高度(以高度为准)
if (this.Width > this.Height)
{
sb = new SolidBrush(ledColor);
Rectangle rec=new Rectangle(1,1,this.Height-2,this.Height-2);//创建矩形
g.FillEllipse(sb,rec);//画圆
}
}
#endregion
}
3,重新生成后在工具箱里面就可以看到MyLED的控件了,拖入后可以直接使用
注意:如果只有这个代码,那只有宽度大于高度的时候才会画圆。
根据指示灯的功能需求,最终代码如下
public partial class MyLED : UserControl
{
public MyLED()
{
InitializeComponent();
#region 【1】设置双缓冲等属性
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.Selectable, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.SetStyle(ControlStyles.UserPaint, true);
#endregion
}
#region 【2】定义三个字段
private Graphics g;
private Pen p;
private SolidBrush sb;
#endregion
#region 【3】添加一个设置Graphics的方法
private void SetGraphics(Graphics g)
{
//设置画布的属性
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
}
#endregion
#region 【4】根据实际控件分析的结果,创建属性
private Color ledColor = Color.Green;
[Category("jason控件属性")]
[Description("LED指示灯演示")]
public Color LedColor
{
get { return ledColor; }
set
{
ledColor = value;
this.Invalidate();
}
}
private bool isBorder = true;
[Category("jason控件属性")]
[Description("是否有边框")]
public bool IsBorder
{
get { return isBorder; }
set
{
isBorder = value;
this.Invalidate();
}
}
private int borderWidth = 5;
[Category("jason控件属性")]
[Description("圆环的宽度")]
public int BorderWidth
{
get { return borderWidth; }
set
{
borderWidth = value;
this.Invalidate();
}
}
private int gapWidth = 5;
[Category("jason控件属性")]
[Description("间隙的宽度")]
public int GapWidth
{
get { return gapWidth; }
set
{
gapWidth = value;
this.Invalidate();
}
}
private bool isHighLight = true;
[Category("jason控件属性")]
[Description("是否高亮")]
public bool IsHighLight
{
get { return isHighLight; }
set
{
isHighLight = value;
this.Invalidate();
}
}
private Color centerColor = Color.White;
[Category("jason控件属性")]
[Description("渐变中心的颜色")]
public Color CenterColor
{
get { return centerColor; }
set
{
centerColor = value;
this.Invalidate();
}
}
#endregion
#region 【5】创建重绘的事件
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
g = e.Graphics;//获取画布
SetGraphics(g);//设置画布
#region 1,画一个圆
//if (this.Width > this.Height)//情况1:如果宽度大于高度(以高度为准)
//{
// sb = new SolidBrush(ledColor);
// Rectangle rec=new Rectangle(1,1,this.Height-2,this.Height-2);//创建矩形
// g.FillEllipse(sb,rec);//画圆
//}
//else//情况2:如果高度大于宽度(以宽度为准)
//{
// sb = new SolidBrush(ledColor);
// Rectangle rec = new Rectangle(1, 1, this.Width - 2, this.Width - 2);//创建矩形
// g.FillEllipse(sb, rec);//画圆
//}
//优化上面的代码
int LEDWidth = Math.Min(this.Width, this.Height);
sb = new SolidBrush(ledColor);
RectangleF rec = new RectangleF(1, 1, LEDWidth - 2, LEDWidth - 2);//创建矩形
g.FillEllipse(sb, rec);//画圆
#endregion
#region 2,在圆里面画一个圆环
//如果有边框,那就画一个圆环
if (isBorder)//参数这里用字段或属性都可以,如果用属性,程序要都走一些判断的代码
{
p = new Pen(this.BackColor, borderWidth);//使用背景色
//p = new Pen(Color.Red, borderWidth);
float x = 1 + gapWidth + borderWidth * 0.5f;
rec = new RectangleF(x, x, LEDWidth - 2 * x, LEDWidth - 2 * x);
g.DrawEllipse(p, rec);//画圆环
}
#endregion
#region 3,渐变色绘制,是否高亮
if (isHighLight)
{
//if (isBorder)
//{
// //先确定路径
// GraphicsPath gp = new GraphicsPath();
// //float x = 1 + gapWidth + borderWidth * 0.5f;//如果坐标是这个,会有点覆盖圆环
// float x = 1 + gapWidth + borderWidth;
// rec = new RectangleF(x, x, LEDWidth - 2 * x, LEDWidth - 2 * x);
// gp.AddEllipse(rec);//把矩形添加到路径
// //渐变色画刷,高亮
// PathGradientBrush pgb=new PathGradientBrush(gp);//把路径传入
// pgb.CenterColor = this.centerColor;
// //设置有多少组颜色来渐变
// pgb.SurroundColors=new Color[]
// {
// ledColor
// };
// g.FillPath(pgb,gp);
//}
//else
//{
// //先确定路径
// GraphicsPath gp = new GraphicsPath();
// float x = 1 ;
// rec = new RectangleF(x, x, LEDWidth - 2 * x, LEDWidth - 2 * x);
// gp.AddEllipse(rec);
// //渐变色画刷,高亮
// PathGradientBrush pgb = new PathGradientBrush(gp);
// pgb.CenterColor = this.centerColor;
// pgb.SurroundColors = new Color[]
// {
// ledColor
// };
// g.FillPath(pgb, gp);
//}
//优化上面的if else代码
GraphicsPath gp = new GraphicsPath();
float x = isBorder? 1 + gapWidth + borderWidth:1;//使用三元运算来判断,优化代码
rec = new RectangleF(x, x, LEDWidth - 2 * x, LEDWidth - 2 * x);
gp.AddEllipse(rec);//把矩形添加到路径
//渐变色画刷,高亮
PathGradientBrush pgb = new PathGradientBrush(gp);//把路径传入
pgb.CenterColor = this.centerColor;
//设置有多少组颜色来渐变
pgb.SurroundColors = new Color[]
{
ledColor
};
g.FillPath(pgb, gp);
}
#endregion
}
#endregion
}
圆的绘制的坐标说明:
圆环的绘制的坐标说明:
二,在项目中使用自定义控件
1,拖入MyLED控件
2,在主程序中根据状态,来改变MyLED控件的颜色
bool myLEDStatus = true;
this.myLED1.LedColor = myLEDStatus ? Color.LimeGreen : Color.Red;
上面用法比较通用,用起来麻烦,如果项目中只是true或false,对自定义控件进行改造
三,针对上述调用问题进行改造
1,增加三个属性
private Color ledTrueColor = Color.Green;
[Category("jason控件属性")]
[Description("TRUE的时候LED指示灯颜色")]
public Color LedTrueColor
{
get { return ledTrueColor; }
set
{
ledTrueColor = value;
this.Invalidate();
}
}
private Color ledFalseColor = Color.Red;
[Category("jason控件属性")]
[Description("False的时候LED指示灯颜色")]
public Color LedFalseColor
{
get { return ledFalseColor; }
set
{
ledFalseColor = value;
this.Invalidate();
}
}
private bool ledStatus = true;
[Category("jason控件属性")]
[Description("当前的状态")]
public bool LedStatus
{
get { return ledStatus; }
set
{
ledStatus = value;
this.Invalidate();
}
}
2,把根据状态来判断颜色的代码写在自定义控件里面
3,在主程序中调用,一句代码就可以了
this.myLED1.LedStatus = true;
//或者this.myLED1.LedStatus = false;
此时代码如下:
public partial class MyLED : UserControl
{
public MyLED()
{
InitializeComponent();
#region 【1】设置双缓冲等属性
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.Selectable, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.SetStyle(ControlStyles.UserPaint, true);
#endregion
}
#region 【2】定义三个字段
private Graphics g;
private Pen p;
private SolidBrush sb;
#endregion
#region 【3】添加一个设置Graphics的方法
private void SetGraphics(Graphics g)
{
//设置画布的属性
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
}
#endregion
#region 【4】根据实际控件分析的结果,创建属性
private Color ledTrueColor = Color.Green;
[Category("jason控件属性")]
[Description("TRUE的时候LED指示灯颜色")]
public Color LedTrueColor
{
get { return ledTrueColor; }
set
{
ledTrueColor = value;
this.Invalidate();
}
}
private Color ledFalseColor = Color.Red;
[Category("jason控件属性")]
[Description("False的时候LED指示灯颜色")]
public Color LedFalseColor
{
get { return ledFalseColor; }
set
{
ledFalseColor = value;
this.Invalidate();
}
}
private bool ledStatus = true;
[Category("jason控件属性")]
[Description("当前的状态")]
public bool LedStatus
{
get { return ledStatus; }
set
{
ledStatus = value;
this.Invalidate();
}
}
private Color ledColor = Color.Green;
[Category("jason控件属性")]
[Description("LED指示灯演示")]
public Color LedColor
{
get { return ledColor; }
set
{
ledColor = value;
this.Invalidate();
}
}
private bool isBorder = true;
[Category("jason控件属性")]
[Description("是否有边框")]
public bool IsBorder
{
get { return isBorder; }
set
{
isBorder = value;
this.Invalidate();
}
}
private int borderWidth = 5;
[Category("jason控件属性")]
[Description("圆环的宽度")]
public int BorderWidth
{
get { return borderWidth; }
set
{
borderWidth = value;
this.Invalidate();
}
}
private int gapWidth = 5;
[Category("jason控件属性")]
[Description("间隙的宽度")]
public int GapWidth
{
get { return gapWidth; }
set
{
gapWidth = value;
this.Invalidate();
}
}
private bool isHighLight = true;
[Category("jason控件属性")]
[Description("是否高亮")]
public bool IsHighLight
{
get { return isHighLight; }
set
{
isHighLight = value;
this.Invalidate();
}
}
private Color centerColor = Color.White;
[Category("jason控件属性")]
[Description("渐变中心的颜色")]
public Color CenterColor
{
get { return centerColor; }
set
{
centerColor = value;
this.Invalidate();
}
}
#endregion
#region 【5】创建重绘的事件
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
g = e.Graphics;//获取画布
SetGraphics(g);//设置画布
#region 1,画一个圆
int LEDWidth = Math.Min(this.Width, this.Height);
Color color = ledStatus ? ledTrueColor : ledFalseColor;
//sb = new SolidBrush(ledColor);
sb = new SolidBrush(color);
RectangleF rec = new RectangleF(1, 1, LEDWidth - 2, LEDWidth - 2);//创建矩形
g.FillEllipse(sb, rec);//画圆
#endregion
#region 2,在圆里面画一个圆环
//如果有边框,那就画一个圆环
if (isBorder)//参数这里用字段或属性都可以,如果用属性,程序要都走一些判断的代码
{
p = new Pen(this.BackColor, borderWidth);//使用背景色
//p = new Pen(Color.Red, borderWidth);
float x = 1 + gapWidth + borderWidth * 0.5f;
rec = new RectangleF(x, x, LEDWidth - 2 * x, LEDWidth - 2 * x);
g.DrawEllipse(p, rec);//画圆环
}
#endregion
#region 3,渐变色绘制,是否高亮
if (isHighLight)
{
GraphicsPath gp = new GraphicsPath();
float x = isBorder? 1 + gapWidth + borderWidth:1;//使用三元运算来判断,优化代码
rec = new RectangleF(x, x, LEDWidth - 2 * x, LEDWidth - 2 * x);
gp.AddEllipse(rec);//把矩形添加到路径
//渐变色画刷,高亮
PathGradientBrush pgb = new PathGradientBrush(gp);//把路径传入
pgb.CenterColor = this.centerColor;
//设置有多少组颜色来渐变
pgb.SurroundColors = new Color[]
{
//ledColor
color
};
g.FillPath(pgb, gp);
}
#endregion
}
#endregion
}
四,增加闪烁的效果
效果:
1,增加闪烁要用到的属性
private bool isFlash = true;
[Category("jason控件属性")]
[Description("是否闪烁")]
public bool IsFlash
{
get { return isFlash; }
set
{
isFlash = value;
this.Invalidate();
}
}
private int flashInterval = 500;
[Category("jason控件属性")]
[Description("闪烁的频率")]
public int FlashInterval
{
get { return flashInterval; }
set
{
flashInterval = value;
timer.Interval = flashInterval;//timer的时间间隔要放在这里
this.Invalidate();
}
}
private Color[] lampColor = new Color[] { };
[Category("jason控件属性")]
[Description("闪烁灯的几种颜色,当需要闪烁时,至少需要2个及以上颜色,不需要闪烁则至少需要1个颜色")]
public Color[] LampColor
{
get { return lampColor; }
set
{
if (value == null || value.Length <= 0)
return;
lampColor = value;
this.Invalidate();
}
}
2,判断是否闪烁
3,timer事件
private void Timer_Tick(object sender, EventArgs e)
{
intColorIndex++;
if (intColorIndex >= lampColor.Length)
{
intColorIndex = 0;
}
this.Invalidate();
}
4,完整代码:
public partial class MyLED : UserControl
{
public MyLED()
{
InitializeComponent();
#region 【1】设置双缓冲等属性
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.Selectable, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.SetStyle(ControlStyles.UserPaint, true);
timer.Enabled = true;
timer.Tick += Timer_Tick;
#endregion
}
private void Timer_Tick(object sender, EventArgs e)
{
intColorIndex++;
if (intColorIndex >= lampColor.Length)
{
intColorIndex = 0;
}
this.Invalidate();
}
#region 【2】定义三个字段
private Graphics g;
private Pen p;
private SolidBrush sb;
Timer timer=new Timer();
private int intColorIndex = 0;
#endregion
#region 【3】添加一个设置Graphics的方法
private void SetGraphics(Graphics g)
{
//设置画布的属性
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
}
#endregion
#region 【4】根据实际控件分析的结果,创建属性
private Color ledTrueColor = Color.Green;
[Category("jason控件属性")]
[Description("TRUE的时候LED指示灯颜色")]
public Color LedTrueColor
{
get { return ledTrueColor; }
set
{
ledTrueColor = value;
this.Invalidate();
}
}
private Color ledFalseColor = Color.Red;
[Category("jason控件属性")]
[Description("False的时候LED指示灯颜色")]
public Color LedFalseColor
{
get { return ledFalseColor; }
set
{
ledFalseColor = value;
this.Invalidate();
}
}
private bool ledStatus = true;
[Category("jason控件属性")]
[Description("当前的状态")]
public bool LedStatus
{
get { return ledStatus; }
set
{
ledStatus = value;
this.Invalidate();
}
}
private Color ledColor = Color.Green;
[Category("jason控件属性")]
[Description("LED指示灯演示")]
public Color LedColor
{
get { return ledColor; }
set
{
ledColor = value;
this.Invalidate();
}
}
private bool isBorder = true;
[Category("jason控件属性")]
[Description("是否有边框")]
public bool IsBorder
{
get { return isBorder; }
set
{
isBorder = value;
this.Invalidate();
}
}
private int borderWidth = 5;
[Category("jason控件属性")]
[Description("圆环的宽度")]
public int BorderWidth
{
get { return borderWidth; }
set
{
borderWidth = value;
this.Invalidate();
}
}
private int gapWidth = 5;
[Category("jason控件属性")]
[Description("间隙的宽度")]
public int GapWidth
{
get { return gapWidth; }
set
{
gapWidth = value;
this.Invalidate();
}
}
private bool isHighLight = true;
[Category("jason控件属性")]
[Description("是否高亮")]
public bool IsHighLight
{
get { return isHighLight; }
set
{
isHighLight = value;
this.Invalidate();
}
}
private Color centerColor = Color.White;
[Category("jason控件属性")]
[Description("渐变中心的颜色")]
public Color CenterColor
{
get { return centerColor; }
set
{
centerColor = value;
this.Invalidate();
}
}
private bool isFlash = true;
[Category("jason控件属性")]
[Description("是否闪烁")]
public bool IsFlash
{
get { return isFlash; }
set
{
isFlash = value;
this.Invalidate();
}
}
private int flashInterval = 500;
[Category("jason控件属性")]
[Description("闪烁的频率")]
public int FlashInterval
{
get { return flashInterval; }
set
{
flashInterval = value;
timer.Interval = flashInterval;//timer的时间间隔要放在这里
this.Invalidate();
}
}
private Color[] lampColor = new Color[] { };
[Category("jason控件属性")]
[Description("闪烁灯的几种颜色,当需要闪烁时,至少需要2个及以上颜色,不需要闪烁则至少需要1个颜色")]
public Color[] LampColor
{
get { return lampColor; }
set
{
if (value == null || value.Length <= 0)
return;
lampColor = value;
this.Invalidate();
}
}
#endregion
#region 【5】创建重绘的事件
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
g = e.Graphics;//获取画布
SetGraphics(g);//设置画布
#region 1,画一个圆
int LEDWidth = Math.Min(this.Width, this.Height);
Color color = ledStatus ? ledTrueColor : ledFalseColor;
if (isFlash)
{
lampColor=new Color[]{color,Color.Yellow};
color = lampColor[intColorIndex];
}
sb = new SolidBrush(color);
RectangleF rec = new RectangleF(1, 1, LEDWidth - 2, LEDWidth - 2);//创建矩形
g.FillEllipse(sb, rec);//画圆
#endregion
#region 2,在圆里面画一个圆环
//如果有边框,那就画一个圆环
if (isBorder)//参数这里用字段或属性都可以,如果用属性,程序要都走一些判断的代码
{
p = new Pen(this.BackColor, borderWidth);//使用背景色
//p = new Pen(Color.Red, borderWidth);
float x = 1 + gapWidth + borderWidth * 0.5f;
rec = new RectangleF(x, x, LEDWidth - 2 * x, LEDWidth - 2 * x);
g.DrawEllipse(p, rec);//画圆环
}
#endregion
#region 3,渐变色绘制,是否高亮
if (isHighLight)
{
GraphicsPath gp = new GraphicsPath();
float x = isBorder? 1 + gapWidth + borderWidth:1;//使用三元运算来判断,优化代码
rec = new RectangleF(x, x, LEDWidth - 2 * x, LEDWidth - 2 * x);
gp.AddEllipse(rec);//把矩形添加到路径
//渐变色画刷,高亮
PathGradientBrush pgb = new PathGradientBrush(gp);//把路径传入
Color[] surroundColor = new Color[] {color};
pgb.CenterColor = this.centerColor;
//设置有多少组颜色来渐变
pgb.SurroundColors = surroundColor;
g.FillPath(pgb, gp);
}
#endregion
}
#endregion
}
c#做的指示灯控件用法_C#--自定义控件-开发LED指示灯控件(带闪烁效果)相关推荐
- android include 控件详解,Android开发中include控件用法分析
本文实例讲述了Android开发中include控件用法.分享给大家供大家参考,具体如下: 我们知道,基于Android系统的应用程序的开发,界面设计是非常重要的,它关系着用户体验的好坏.一个好的界面 ...
- chart控件做实时曲线显示_基于GDI+技术开发工业仪表盘控件
写在前面 上次给大家看了一个上位机界面之后,很多人表示对那个仪表盘的开发感兴趣,今天就跟大家分享一下整个的开发过程,由于整个仪表盘开发的过程还是有些复杂的,无法将所有的代码都一一展示,所以重点跟大家分 ...
- VS+QT开发Ocx/ActiveX控件 一
VS+QT开发Ocx/ActiveX控件 一 VS+QT开发Ocx/ActiveX控件-------网页中全屏 二 QT开发ActiveX控件 一:所用IDE版本,需用管理员权限 二:创建Active ...
- 2 Led指示灯的封装
概述 通常情况下,IPC设备均有Led指示灯,用于指示电源状态.网络状态.与平台的连接状态等.有的设备有一个Led指示灯,有的设备有两个Led指示灯,一般为红蓝灯或红绿灯.Led指示灯工作时,有三种状 ...
- ASP:Literal控件用法
ASP:Literal控件用法 刚开始学.NET的朋友可能不清楚Literal和Label到底有什么区别,其实它们也只有一个区别,就是在转换成客户端Html代码后,Label就成了<span&g ...
- Dev控件用法 aspxTreeList 无刷新 aspxGridView 数据
Dev控件用法 aspxTreeList 无刷新 aspxGridView 数据 主要是利用 ASPxTreeList 点击事件回发服务器进行数据重新绑定 ASPxTreeList: ? 1 2 &l ...
- C#学习(十五)——窗体控件用法大全
C#控件及常用设计整理 1.窗体 1.1.常用属性** (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. (2) WindowState属性: 用来获取或设置窗 ...
- C#自带控件实现圆形led指示灯
C#自带控件实现圆形led指示灯 前段时间做项目需要用到圆形指示灯,在网上找了很久都没找到需要的,有说用用户自定义控件自己画一个,有说直接用按钮做指示灯,只是按钮的话,四方形的,不好看.下载了一个圆形 ...
- bui ajax,BUI 控件用法
前言 前面快速开始已经讲解了控件的最基本用法, 学一个就会全部了. 控件之间还可以相互嵌套, BUI的控件主要可以分为3类: 滑动交互控件: 例如: 焦点图bui.slide, 选项卡bui.tab, ...
最新文章
- JetsonXavier/Tx2性能测试比对
- Image Cloud Gallery
- HTC解锁其Verizon和ATT等Android设备的Bootloader
- c语言 倒计时不清屏_打字游戏超细讲解(C语言基础小游戏)
- Android sdk Drow9patch使用
- Checking if your code is running on 64-bit PHP
- Javascritp入门
- 用python画简单的图案-使用 Python Turtle 设计简单而又美丽的图形
- Redis集群生产环境高可用方案实战过程
- 【ccpc网络赛】YJJ's Salesman【1010】【树状数组+离散化+dp】
- mybatis中mysql递归查询多级_Mybatis + mysql 实现两级级联的查询
- 生成对抗网络及其应用
- 分布式数据库BLP安全模型介绍
- php开源视频cms,迅睿PHP开源视频电影CMS系统
- originPro2021(7)导出图表不清晰
- nowcoder contest#115 江西财经大学第一届程序设计竞赛 G 小Q的口袋校园 记忆化搜索 DP
- linux中用来保存组账户的文件,Linux账户管理的几个文件
- git 使用meld 进行文本对比
- 机器学习:分类模型大全
- 世界上最难得九宫格???你敢挑战吗?