绘制椭圆形运行时
Draw ellipse form runtime
我在运行的时候试着画了一个椭圆形。我将 TransparentKey
设置为与 backColor
相同,并将表格 borderStyle
设置为 none
。但是它对我不起作用。当我 运行 下面的代码时,我没有得到椭圆。我不确定这里遗漏了什么。
public Form1()
{
InitializeComponent();
Graphics graphicsObj = this.CreateGraphics();
SolidBrush sBrush=new SolidBrush(Color.Orange);
graphicsObj.FillEllipse(sBrush, 30, 30, 60, 30);
sBrush.Dispose();
graphicsObj.Dispose();
}
在 WinForms 中绘图不是这样工作的,最多只能看到一次,但是当 Paint
事件重新触发时,它就会被删除。
您可以做的是在 Paint
事件中绘制椭圆:
private void OnPaint(object sender, PaintEventArgs e)
{
var g = e.Graphics;
SolidBrush sBrush=new SolidBrush(Color.Orange);
graphicsObj.FillEllipse(sBrush, 30, 30, 60, 30);
sBrush.Dispose();
}
编辑:
您可以在您的表单(“事件”选项卡)上找到 OnPaint 事件,或者您可以从您的构造函数中订阅它:
this.Paint += OnPaint;
我在运行的时候试着画了一个椭圆形。我将 TransparentKey
设置为与 backColor
相同,并将表格 borderStyle
设置为 none
。但是它对我不起作用。当我 运行 下面的代码时,我没有得到椭圆。我不确定这里遗漏了什么。
public Form1()
{
InitializeComponent();
Graphics graphicsObj = this.CreateGraphics();
SolidBrush sBrush=new SolidBrush(Color.Orange);
graphicsObj.FillEllipse(sBrush, 30, 30, 60, 30);
sBrush.Dispose();
graphicsObj.Dispose();
}
在 WinForms 中绘图不是这样工作的,最多只能看到一次,但是当 Paint
事件重新触发时,它就会被删除。
您可以做的是在 Paint
事件中绘制椭圆:
private void OnPaint(object sender, PaintEventArgs e)
{
var g = e.Graphics;
SolidBrush sBrush=new SolidBrush(Color.Orange);
graphicsObj.FillEllipse(sBrush, 30, 30, 60, 30);
sBrush.Dispose();
}
编辑:
您可以在您的表单(“事件”选项卡)上找到 OnPaint 事件,或者您可以从您的构造函数中订阅它:
this.Paint += OnPaint;