F.R.I.D.A.Y.

VS ERROR CS1061: Form에는 'Form_Load'에 대한 정의가 포함되어 있지 않고, 'Form' 형식의 첫 번째 인수를 허용하는 액세스 가능한 확장 메서드 'Form_Load'이(가)없습니다. using 지시문, 또는 어셈블리 참조.. 본문

DEV/Tip

VS ERROR CS1061: Form에는 'Form_Load'에 대한 정의가 포함되어 있지 않고, 'Form' 형식의 첫 번째 인수를 허용하는 액세스 가능한 확장 메서드 'Form_Load'이(가)없습니다. using 지시문, 또는 어셈블리 참조..

F.R.I.D.A.Y. 2022. 4. 4. 10:24
반응형

 코드에서 메서드를 지웠는데 갑자기 오류가 난다.


 WinForm으로 작업을 하다가 실수로 Form을 눌러서 메서드가 나와서, 필요 없는 메서드를 지웠더니 위 이미지처럼 오류가 발생했다.

Form1_Load만 지우고 싶었는데..

 

원인

 디자이너 코드와 실제 메서드 코드가 상이하기 때문에 발생하는 문제다. WinForm은 디자이너라는 시스템으로 코드 및 UI 관리가 이루어진다. WinForm 디자이너는 개발자의 편한 프로그래밍을 위해 만들어졌지만, 일단은 프로그램이라서 사람처럼 '알아서'가 안된다.

 

 CS 파일과 UI 및 이벤트 바인딩[# 컨트롤과 메서드 연결]을 위한 Designer파일이 분리되어있기 때문에 사용자가 직접 메서드만 삭제를 하면 Designer 파일과 CS 파일이 서로 충돌이 발생하면서 위와 같은 문제를 일으킨다.

 

해결

 위 문제를 해결할 때는 1) 삭제한 메서드를 복구한다. 2) 이벤트 바인딩을 삭제한다. 두 가지로 나눌 수 있다. 여기에서는 이벤트 바인딩을 삭제하는 방향으로 안내한다.

 디자이너에서 위 빨간 밑줄 친 링크를 타고 이동한다. 이동하면 UI 관련 코드로 이동하는데

 오류가 되는 라인을 삭제해주면 된다.

728x90
반응형
Comments