2011-12-03 2 views
2

저는 응용 프로그램을 디자인하기 위해 WinForms를 사용하고 있습니다. 기본 이벤트 처리기가있는 많은 컨트롤 (단추, 메뉴 등)이 있습니다. 나는 한 명을 탐색하기 위해 내 수업이 다소 커지고 어려워한다는 것을 알게되었습니다. 이것은 각 컨트롤이 윈도우의 컨텍스트 내에서 이벤트를 처리하는 하나 이상의 메서드를 필요로한다는 사실 때문입니다.큰 winform 클래스를 분할

이러한 방법을 구성하거나 그러한 큰 클래스를 분할하는 몇 가지 기술은 무엇입니까?

+0

이미 #region을 사용하고 있습니까? 모든 비 디자이너 코드를 한 클래스에 포함 시키면 놀라움이 없습니다. – sq33G

답변

4

네비게이션의 경우 여러 파일에서 split your class을 사용할 수 있으며 모든 파일의 클래스 선언 앞에 partial을 추가하기 만하면됩니다.

일반적으로 이러한 컨트롤에 바인딩 된 매우 복잡한 컨트롤이나 이벤트 처리기가있는 경우 사용자 지정 사용자 정의 컨트롤에서 해당 컨트롤을 분리하여 폼에 추가하는 것이 합리적 일 수 있습니다. 새 사용자 정의 컨트롤 요소를 프로젝트에 추가하고 필요한 방식으로 사용자 정의하십시오.

모든 컨트롤은 동일한 프로젝트의 다른 .Net 컨트롤과 마찬가지로 즉시 사용할 수 있지만 별도의 DLL 파일에 넣을 수도 있습니다 (코드 분리를 원할 경우).

여기에 a nice tutorial WinForms에서 자신의 컨트롤을 디자인하는 방법입니다.

+0

부분 키워드가 즉시 마음에 들었습니다. 다른 기술을 사용하여 코드를 압축하거나 그룹화하는 방법을 찾고 싶었습니다. 내 컨트롤은 일반적으로 매우 간단합니다. 많은 이벤트 핸들러가 하나씩 있습니다. – MarkP

+0

논리를 의미있는 명령으로 묶을 수있는 경우 명령 디자인 패턴 (WPF에서 수행되는 방법과 유사 - ICommand 인터페이스 찾기)과 같은 것을 구현할 수 있으며 양식의 코드 숨김에서 필요한 컨텍스트와 매개 변수를 가진 코드를 호출하기 만하면됩니다 . –

관련 문제