Время рисования эллипса - PullRequest
0 голосов
/ 23 июня 2018

Я пытался нарисовать форму эллипса во время выполнения.Я устанавливаю 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();
}

1 Ответ

0 голосов
/ 23 июня 2018

Рисование в 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;

...