绘制椭圆形运行时

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;