工控自定义winform控件:3色灯,支持DataBinding
Winform 自定义 支持 控件 工控 DataBinding
2023-09-11 14:16:54 时间
产线那个工位没有装3色报警灯,于是手撸了一个。
using System.Drawing; using System.Drawing.Drawing2D; using System.Runtime.InteropServices; using System.Windows.Forms; namespace UNI.WinControls { public enum LED_Status { OK = 1, Error = 2, Warning = 3, Unknowing = 4 } public class ThreeColorLED : Control { [DllImport("Kernel32.dll")] public static extern bool Beep(int frequency, int duration); public ThreeColorLED() { Width = 64; Height = 64; Status = LED_Status.Unknowing; } public LED_Status Status { get; set; } private string statusCode="0"; public string StatusCode { get { return statusCode; } set { statusCode = value; switch (value) { case "1": Status = LED_Status.OK; break; case "2": Status = LED_Status.Error; break; case "3": Status = LED_Status.Warning; break; default: Status = LED_Status.Unknowing; break; } this.Invalidate(); } } protected override void OnPaint(PaintEventArgs e) { var color = Color.Transparent; switch (Status) { case LED_Status.OK: try { Beep(1888,1000); } catch { } color = Color.Green; break; case LED_Status.Error: color = Color.Red; break; case LED_Status.Warning: color = Color.Yellow; break; default: color = Color.Gray; break; } e.Graphics.Clear(color); var b = new SolidBrush(color); Pen p = new Pen(new SolidBrush(color)); Rectangle r = new Rectangle(0, 0, this.Width, this.Height);//标识圆的大小 e.Graphics.DrawEllipse(p, r); e.Graphics.FillEllipse(b, r); GraphicsPath g = new GraphicsPath(); g.AddEllipse(0, 0, Width, Height); this.Region = new Region(g);//这句就是设置圆形的规格区域的 } } }
使用:
相关文章
- WinForm 之Control.Invoke 和Control.BeginInvoke 方法的使用 Control 不能在创建它的 Thread 之外被调用。但可以通过 invoke 来保证 C
- C#winform自定义控件模拟设计时界面鼠标移动和调节大小、选中效果
- 基于C#实现(WinForm)图像扭曲变形【100010738】
- Winform Treeview 排序及图标处理
- csharp: winform using Microsoft.Ink(Tablet PC API) create Signature image
- winform 利用 NPOI导入,导出excel
- .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)
- c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
- 捕获winform的最小化,最大化,关闭事件
- winform窗体应用实现淡入淡出等效果
- C#怎么给新建的winform程序添加资源文件夹Resources
- C#-winform-判断用户按下了Ctrl+S键
- C#实现Winform自定义半透明遮罩层
- WinForm最小化到托盘以及托盘右键菜单
- C# 自定义控件制作和使用实例(winform)
- 用C#开发一个WinForm版的批量图片压缩工具