C# 绘制椭圆窗体运行时

C# 绘制椭圆窗体运行时,c#,winforms,gdi,C#,Winforms,Gdi,我试图在运行时绘制一个椭圆形状。我将TransparentKey设置为与backColor相同,将Form borderStyle设置为none。然而,这对我来说不起作用。当我运行下面的代码时,我没有得到椭圆。我不知道这里错过了什么 public Form1() { InitializeComponent(); Graphics graphicsObj = this.CreateGraphics(); SolidBrush sBrush=new SolidBrush(Co

我试图在运行时绘制一个椭圆形状。我将TransparentKey设置为与backColor相同,将Form 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事件重新触发时,它将被删除。 您可以在绘制事件中绘制椭圆:

编辑:

您可以在表单事件选项卡上找到OnPaint事件,也可以从构造函数中订阅它:
this.Paint+=OnPaint

在哪里可以找到此OnPaint事件在窗体的“事件”选项卡中找不到OnPaint事件。通过覆盖事件实现了这一点。谢谢你的帮助。不用了,用c'tor画画。@UweKeim明白了。但是如何在winform中绘制椭圆呢
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();
}