Класс, который рисует на форме

152
30 марта 2018, 09:39

Планирую сделать класс, в котором был бы метод, рисующий какой-либо объект на форме, допустим, прямоугольник. Но я не очень понимаю, как в классе задавать область рисования. Хочу потом на коде формы просто вызывать метод этого класса, что-то по типу:

Draw dr1 = new Draw ();
dr1.startDraw();

Начал писать класс, но как указать область рисования?:

class Draw
{
    public void startDraw()
    {
        Bitmap bmp = new Bitmap(???.Width, ???.Height);
        Graphics graph = Graphics.FromImage(bmp);
        graph.FillRectangle(Brushes.Black, 50, 50, 50, 50);
        ???.Image = bmp;
    }
}
Answer 1

Сделайте метод с аргументом типа PictureBox. Вообще в таком случае можно статический метод сделать.

class Drawer
{
    public static void StartDraw(PictureBox pb)
    {
        Bitmap bmp = new Bitmap(pb.Width, pb.Height);
        Graphics graph = Graphics.FromImage(bmp);
        graph.FillRectangle(Brushes.Black, 50, 50, 50, 50);
        pb.Image = bmp;
    }
}

И так используйте потом в коде формы.

Drawer.StartDraw(this.pictureBox1);
READ ALSO
Как обнулить DataSet - C#

Как обнулить DataSet - C#

У меня есть метод для выполнения SQL запросов:

160
Отслеживание события нажатия кнопки

Отслеживание события нажатия кнопки

Как мы можем отловить событие нажатия кнопки? Я пытался сделать что-то вроде

144
Удалённый запуск кода

Удалённый запуск кода

В общем реализовал код, который автоматически может менять обложку в вк (у меня смена происходит по таймеру пока)И тут возникает вопрос, а где...

204