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

이산수학? 그래프? 공무원 문제

문 17. 다음 글의 내용이 참일 때, 갑이 반드시 수강해야 할 과목은? 갑은 A~E 과목에 대해 수강신청을 준비하고 있다. 갑이 수강하기 위해 충족해야 하는 조건은 다음과 같다. ○ A를 수강하면 B를 수강하지 않고, B를 수강하지 않으면 C를 ...