2011-09-06 8 views
0

다른 클래스의 함수에 매개 변수로 전달하여 Panel의 Graphics 객체에 액세스하려하지만 "Parameter is not valid"라는 오류 메시지가 나타납니다.
다른 클래스에서 Graphics 객체에 액세스

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

이 가능 그래픽 개체에 액세스 할 수 :

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

이는 RectMaker 클래스에있는 기능입니다 :
이것은 내가 패널 클래스에서 사용하고 코드입니다 다른 학급의 패널 이요?

답변

1

패널에 비트 맵이 표시되는 경우 해당 패널에서 그래픽 객체를 생성 한 다음 패널을 무효화하여 업데이트를 표시 할 수 있습니다.

패널을 무효로하고이 다른 클래스의 새로운 정보로 업데이트를 그립니다.

어느 쪽이든 실제로 패널의 페인트 이벤트에서이 작업을 수행해야합니다.이 이벤트는 사용자가 무효화 할 때 트리거됩니다.

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