WinForm 基于 GDI+ 自定义控件简单仿 LED 小示例
参考
- 豆包
- https://learn.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/a36fascx(v=vs.100)
- https://www.cnblogs.com/lesliexin/p/13265707.html
- https://www.bilibili.com/video/BV1Ug411Q72h
环境
| 软件/系统 | 版本 | 说明 |
|---|---|---|
| Windows | windows 10 专业版 22H2 64 位操作系统, 基于 x64 的处理器 | |
| Microsoft Visual Studio | Community 2022 (64 位) - Current 版本 17.14.10 | |
| .NET Framework | 4.8 |
预览
实现功能有:公开控件属性、控件属性更新重绘、控件属性分组与说明、鼠标按下抬起事件等
- 运行界面
![QQ202584-123120-HD[00h00m00s-00h00m07s]](https://img2024.cnblogs.com/blog/1550155/202508/1550155-20250804123212266-203047554.gif)
- 可视化编辑器控件属性

正文
- LyauiBtnControl.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; using System.Text; using System.Windows.Forms; namespace DemoControls { public partial class LyauiBtnControl : Control { public LyauiBtnControl() { InitializeComponent(); } private Color _color = Color.Green; /// <summary> /// 颜色 /// </summary> [Category("Settings"), Description("颜色")] public Color Color { get { return _color; } set { _color = value; // 重绘 Invalidate(); } } protected override void OnPaint(PaintEventArgs pe) { base.OnPaint(pe); // 获取画布 Graphics g = pe.Graphics; // 防止闪烁 g.SmoothingMode = SmoothingMode.AntiAlias; // 画刷 using (SolidBrush solidBrush = new SolidBrush(_color)) { // 矩形不能够太靠近边框 Rectangle rectangle = new Rectangle(1, 1, Width - 2, Height - 2); //g.FillRectangle(solidBrush, rectangle); g.FillEllipse(solidBrush, rectangle); } } // 鼠标按下 protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); // 鼠标按下时触发 _color = Color.Blue; Invalidate(); } // 鼠标抬起 protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); // 鼠标抬起时触发 _color = Color.Green; Invalidate(); } //protected override void OnMouseEnter(EventArgs e) //{ // base.OnMouseEnter(e); // // 鼠标进入时触发 // _color = Color.Red; // Invalidate(); //} //// 鼠标移出 //protected override void OnMouseLeave(EventArgs e) //{ // base.OnMouseLeave(e); // // 鼠标移出时触发 // _color = Color.Green; // Invalidate(); //} /// <summary> /// 界面调整后重绘 /// </summary> /// <param name="e"></param> protected override void OnResize(EventArgs e) { base.OnResize(e); // 重绘 Invalidate(); } } }
博 主 :夏秋初
地 址 :https://www.cnblogs.com/xiaqiuchu/p/19021294
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
地 址 :https://www.cnblogs.com/xiaqiuchu/p/19021294
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。

浙公网安备 33010602011771号