_Q12_ Ответов: 1

Я хочу, чтобы простой жизненный бар был объявлен в классе вне события form1 paint.


Я хочу сделать бар жизни.
Я могу сделать базовый вариант в форме 1, без проблем-см. код ниже.
Но теперь я хочу создать класс, который содержит некоторые свойства для этой панели жизни,такие как value, position, size, color, isfull, ishalf,isalmostdead, is dead, но самое главное, я хочу, чтобы он тоже был нарисован в событии paint.
и в Form1_Paint нарисовать его из этого класса ... как-то.
--------
в псевдокоде это должно выглядеть так:
private void Form1_Paint(отправитель объекта, PaintEventArgs e)
{
Class1. PaintLifeBar(); //и все!
//(или что-то подобное) здесь я даю вам представление о том, как это должно выглядеть.)
}
--------
Это возможно?
Если да, то как?

Что я уже пробовал:

private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.FillRectangle(new SolidBrush(Color.LawnGreen), new Rectangle(10, 10, 55, 5));
        }

1 Ответов

Рейтинг:
0

Ralf Meier

Сначала :
если у вас есть дополнительная информация, вы должны использовать функцию "улучшить вопрос" и добавить ее в этот момент ...

На ваш вопрос :
Вам нужно только создать новый класс, производный от Control. Теперь вы можете создать свой собственный элемент управления с собственными (или настроенными) свойствами, которые можно использовать, например, как кнопку или метку ...

Public Class LifeBar
   inherits Control

' now put your Properties in here

' Override the Controls OnPaint-Method to do your painting
    Protected Overrides Sub OnPaint(e As PaintEventArgs)
        ' here you could do your painting
        ' you can see, that the control gives you it's own PaintEventArgs with which you could work



        MyBase.OnPaint(e)
    End Sub

End Class