Создание графики на панели управления не работает - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть панель в форме вдов.И я создаю Графику, как в следующем коде, создавая графику

private void pnlDraw_MouseMove(object sender, MouseEventArgs e)
        {

            if (startPaint)
            {
                using (g = Graphics.FromImage(bmp))
                {
                    if ( x != -1 && y != -1) 
                    {

                        Color mynewcolor = Color.FromName(myColor);
                        Pen p = new Pen(Color.Black, 5);
                        g.DrawLine(p, new Point(x, y), e.Location);
                        x = e.X;
                        y = e.Y;
                    }
                }
                pnlDraw.Invalidate();                    
            }
        }

 private void pnlDraw_Paint(object sender, PaintEventArgs e)
        {

            e.Graphics.DrawImage(bmp, Point.Empty);
        }

Я пытаюсь очистить панель (очистить то, что рисую на панели) в событии нажатия кнопки, подобном этому.

Но это не работает?Что я должен сделать, чтобы очистить панель?

private void btnClear_Click(object sender, EventArgs e)
        {
            pnlDraw.Invalidate();
        }

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Согласно ответу LarsTech

(Graphics g = Graphics.FromImage(bmp)) { g.Clear(pnlDraw.BackColor); }
pnlDraw.Invalidate();
pnlDraw.Update();
0 голосов
/ 10 декабря 2018

Попробуйте это:

private void btnClear_Click(object sender, EventArgs e)
    {
        pnlDraw.Invalidate();
        pnlDraw.Update();
    }
...