C # нарисовать круг вокруг метки

2

Как нарисовать круг вокруг метки?

Сейчас я пробовал это:

public void drawUseCase(int width, int height, UseCase useCase)
{
    Label lbUseCase = new Label();
    Graphics g = lbUseCase.CreateGraphics();
    Pen p = new Pen(Color.Black, 1);
    g.DrawEllipse(p, width, height, 200, 200);
    lbUseCase.Location = new System.Drawing.Point(width, height);
    lbUseCase.Text = useCase.name;
    mainPanel.Controls.Add(lbUseCase);
}

Но это не работает. Любые идеи?

Это в winforms. Поскольку это не работает, я имею в виду, что появляется только ярлык, но нет круга или чего-то такого.

  • 2
    Это Windows Phone 7? 8, 10? ASP.NET, MVC? Формы?
  • 1
    «Но это не работает», что не работает? Как это не работает? Что неожиданного вы видите? Ошибка? Сбой?
Показать ещё 11 комментариев
Теги:
winforms

1 ответ

4
Лучший ответ

Попробуйте следующее:

private void Form1_Load(object sender, EventArgs e)
{
    Label Label = new Label();
    Label.Location = new System.Drawing.Point(50, 50);
    Label.Width = 50;
    Label.Height = 50;
    Label.Name = "lblTest";
    Label.Text = "test";
    this.Controls.Add(Label);
}

private void Form1_Paint(object sender, PaintEventArgs e)
{
    var lbl = this.Controls.Find("lblTest",true); // find label with name

    foreach (var item in lbl) 
    // there can be multiple lblTest with same name so I used foreach (this is optional btw you can remove it)
    {
        Label tempLabel = item as Label;
        System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red);
        System.Drawing.Pen myPen = new Pen(myBrush, 2);
        e.Graphics.DrawEllipse(myPen, new System.Drawing.Rectangle(tempLabel.Location.X - (tempLabel.Width / 2),
        tempLabel.Location.Y - (tempLabel.Height / 2)  , tempLabel.Width + 40, tempLabel.Height + 40));
        myBrush.Dispose();
        myPen.Dispose();
    }
}

Результат: Изображение 174551

Надежда помогает.

  • 2
    Не забудьте утилизировать ваши кисти ( using !)
  • 0
    @PatrickHofman Спасибо, обновлено :)
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню