C# 绘制GDI红绿灯控件
using System;
using System.Windows.Forms;
using System.Drawing;public class TrafficLightControl : Control
{protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);Graphics g = e.Graphics;g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;// 红色背景g.FillEllipse(Brushes.Red, 0, 0, Width, Height);// 黄色灯(小圆圈)g.FillEllipse(Brushes.Yellow, Width / 4, Height / 4, Width / 2, Height / 2);// 红色灯(小圆圈)g.FillEllipse(Brushes.Black, Width / 2, Height / 4, Width / 2, Height / 2);// 绿色灯(小圆圈)g.FillEllipse(Brushes.Green, 3 * (Width / 4), Height / 4, Width / 2, Height / 2);}protected override void OnResize(EventArgs e){base.OnResize(e);this.Invalidate();}
}// 使用方法:
// 1. 添加控件到工具箱
// 2. 在Form上拖拽TrafficLightControl控件