윈폼 기본 컨트롤을 사용하다가 기본 컨트롤을 상속받아 재정의 해서 써야 할 일이 종종 있었다.
그냥 보통 구현의 경우 상관없지만, 생성자를 재정의(오버라이딩), 혹은 중첩정의(오버로딩) 할 경우
디자이너까지 손대야 하는데...
내 경우에는 매개변수가 있는 생성자를 써야 했기 때문에 디자이너를 건드렸고,
저장 직후 디자인이 이상 없이 보였으나, 다시 닫고 .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 |