2011-09-06 77 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); 
}