2011-09-06 74 views
0

我想通过将它作为参数传递给另一个类中的函数来访问面板的图形对象,但我收到一个错误,说“参数无效”。
这是我使用的面板类代码:
从一个不同的类访问一个图形对象

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); 
    } 
} 

是否有可能访问Graphics对象来自不同班级的面板?

回答

1

如果面板显示位图,则可以从中生成图形对象,然后使面板无效以显示更新。

或者只是使面板无效并使用此类其他类的任何新信息绘制更新。

无论采用哪种方法,您都必须在Panel的paint事件中完成这项工作,当您使其失效时触发它。

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