윈폼 기본 컨트롤을 사용하다가 기본 컨트롤을 상속받아 재정의 해서 써야 할 일이 종종 있었다.

그냥 보통 구현의 경우 상관없지만, 생성자를 재정의(오버라이딩), 혹은 중첩정의(오버로딩) 할 경우

디자이너까지 손대야 하는데...


내 경우에는 매개변수가 있는 생성자를 써야 했기 때문에 디자이너를 건드렸고,

저장 직후 디자인이 이상 없이 보였으나, 다시 닫고 .designer.cs를 열었더니 알아서 뭔가 정리(?)가 되었고,

이 후에는 디자인이 제대로 열리지 않았다.


그래서 디자인을 열려고 하면


"디자이너 변수를 선언하거나 할당하지 않았습니다"


경고던가? 이 글귀와 함께 디자이너 에러....

스택 추적도 애매하고...


열심히 고민해 본 결과 원인은 .designer.cs의 자동 정리(?)에 있었다.


생성자가 필요할 때는 new로 실제로 할당할 때인데,

이걸 

InitializeComponent();

안에서 해줘야 하는데 에러인지 버그인지,

나는 분명 내부에서 할당해 준 것 같은데

외부에 선언될 때 new가 되어 있었다.


그래서 함수 내부에서 new 해주니 그때부터 이상없이 잘 작동.

'Programming > C#(with .NET)' 카테고리의 다른 글

ASP 0178 : 80070005 에러  (0) 2017.12.12
C#(WinForm)과 MariaDB(MySQL)의 연동  (0) 2015.04.03

+ Recent posts