winform 自定义控件 画一个中间园
时间: 2024-10-23 15:19:02 浏览: 21
在Windows Forms中创建自定义控件并添加圆形图形,你可以继承自`Control`类,并重写`OnPaint`方法来绘制所需的形状。以下是如何在自定义控件中实现这个功能的一个简单示例:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
public class CustomCircleControl : Control
{
private int circleRadius = 50; // 圆形半径
public CustomCircleControl()
{
// 设置默认属性
BackColor = Color.LightGray; // 控件背景颜色
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// 创建绘图刷
Pen pen = new Pen(Color.Black, 2); // 绘制线宽为2像素的黑色笔刷
SolidBrush brush = new SolidBrush(Color.Red); // 绘制填充色为红色的刷子
// 获取绘图区域
Rectangle bounds = ClientRectangle; // 获取控件的实际可见区域
// 绘制圆环(外边界)
e.Graphics.DrawEllipse(pen, bounds.X, bounds.Y, bounds.Width - circleRadius * 2, bounds.Height - circleRadius * 2);
// 如果需要一个完整的圆形,而不是圆环,这里可以修改为:
// e.Graphics.FillEllipse(brush, bounds.X + circleRadius, bounds.Y + circleRadius, bounds.Width - circleRadius * 2, bounds.Height - circleRadius * 2);
// 清理资源
brush.Dispose();
pen.Dispose();
}
}
```
使用这个自定义控件时,只需把它添加到Form上即可:
```csharp
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
// 添加自定义控件
CustomCircleControl customCircle = new CustomCircleControl();
Controls.Add(customCircle);
customCircle.Location = new Point(50, 50); // 设置位置
}
}
```
阅读全文