Tuesday, July 2, 2013

[C#] Graphics

Graphics 객체 초기화에 문제가 생김.

parameter가 invalid하다고 함.


코드를 다 뜯어봐도 임의로 Dispose하거나 null로 세팅하는 데는 없었음.




문제는 event handler였음.

MVC 패턴(?)을 내가 제대로 쓰지 못해서 그런 건지는 잘 모르겠는데,

아무튼 Redraw & Invalidate를 EventHandler로 넣으면 안 됨.


결국 수동으로 일일이 Redraw & Invalidate하니 잘 돌아감.

이런 샹.


코드:

class DataClass { // 데이터 내용을 고치면 Viewer에서 자동으로 인식
...

   void SetCoord(int x, int y) {
       this.X=x; this.Y=y;
       if(LocationChanged!=null)  // LocationChanged 이벤트 발생시킴.
           LocationChanged(this, null);   // 이 부분이 문제가 됐음.
   }
}

class Viewer {
     void AddData(DataClass dt) {
          dt.LocationChanged += RedrawAndInvalidate;
     }
}

그리기가 관련된 데서는 이벤트를 쓰면 안 될 거 같다;;;;;;

No comments:

Post a Comment

창 핸들을 만드는 동안 오류가 발생했습니다

System.ComponentModel.Win32Exception was unhandled   MyForm w = new MyForm IntPtr handle = wnd.Handle;   // Exception occurs here class MyFo...