C# 绘制GDI红绿灯控件

C# 绘制GDI红绿灯控件

python 复制代码
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控件
相关推荐
我能坚持多久3 分钟前
STL详解——list的介绍以及功能展示
开发语言·c++
Brilliantwxx6 分钟前
【C++】 继承与多态(上)
开发语言·c++·笔记·算法
ch.ju6 分钟前
Java程序设计(第3版)第四章——静态部分
java·开发语言
ZHOUPUYU8 分钟前
PHP 开发实战:从零搭建一个高性能的 RESTful API 服务
运维·开发语言·后端·html·php
不负岁月无痕8 分钟前
STL -- C++ string 类 模拟实现
java·开发语言·c++
Anastasiozzzz10 分钟前
万字深度实战!AI Agent 接入万物的底层密码:MCP 协议传输机制与开发指南(下篇)
java·开发语言·数据库·人工智能·ai·架构
会开花的二叉树13 分钟前
Qt初体验-第一个窗口程序踩的坑
开发语言·c++·qt
灰色人生qwer13 分钟前
python 中 BaseModel 在这里有什么用?
开发语言·python·状态模式
思麟呀14 分钟前
在C++基础上理解CSharp-3
开发语言·c++·c#
techdashen14 分钟前
Rust 能帮你捕获什么,又不能捕获什么
开发语言·后端·rust