Доступ к графическому объекту из другого класса - PullRequest
0 голосов
/ 06 сентября 2011

Я пытаюсь получить доступ к графическому объекту Panel, передавая его в качестве параметра функции из другого класса, но получаю сообщение об ошибке «Параметр недействителен».
Это код, который я использую в классе панели:

Graphics g = contentPan.CreateGraphics();//contentPan is a Panel
RectMaker rect_Maker = new RectMaker();
rect_Maker.Draw(g);

Эта функция находится в классе RectMaker:

public void Draw(Graphics g)
{
   try
   {
     g.FillRectangles(Brushes.White, SmallRect);
     g.DrawRectangles(Pens.Black, SmallRect);
   }
   catch (Exception ex)
   {
     MessageBox.Show(ex.Message);
   }
 }

Возможно ли получить доступ к графическому объекту Panel из другого класса?

1 Ответ

1 голос
/ 06 сентября 2011

Если на панели отображается растровое изображение, из него можно сгенерировать графический объект, а затем аннулировать панель для отображения обновления.

Или просто отключить панель и нарисовать обновление с любой новой информацией, которая у вас есть.из этого другого класса.

В любом случае вам действительно нужно выполнить эту работу в событии рисования Panel, которое срабатывает, когда вы его аннулируете.

private void panel1_Paint(object sender, PaintEventArgs e)
{
  RectMaker rect_Maker = new RectMaker();
  rect_Maker.Draw(e.Graphics);
}
...