여러 개의 "화면"으로 Winform 앱을 작성하는 올바른 방법은 무엇입니까


11

여러 개의 '화면'이있는 Winform 앱을 작성하는 올바른 방법은 무엇입니까? 예를 들어, 작은 백업 프로그램 (주로 낄낄 거림)을 작성하려고하는데 컨트롤과 컨테이너를 폼에 덤프했습니다.

다른 화면을 분리하기 위해 패널과 그룹 상자를 사용하고 있습니다 (예 : 패널을 사용하여 "설정"창의 모든 컨트롤을 유지하고 다른 패널은 설정된 모든 현재 백업을 표시합니다) ). 글쎄, 내 form.cs 파일은 방대한 양의 코드로 확장되었으며, 내가 잘못하고있는 것처럼 느낍니다. 파일에서 아무것도 찾을 수 없으며 다시 시작할 준비가되었습니다. 이 프로젝트는 C # 및 .NET에 대한 지식을 넓히기위한 것이 었으므로 새 프로젝트를 시작하는 것은 그리 큰 문제가 아닙니다.

답변:


10

UI 복잡성을 제어하는 ​​방법에는 여러 가지가 있습니다.

  • 양식이 많은 경우 전환을 관리하는 디자인 패턴 ( 예 : Application Controller 또는 금속에 더 가까운 상태 : State)을 선택할 수 있습니다 .
  • 컨트롤 그룹을 단일 컨트롤로 구성 할 수 있습니다. winforms에서는 사용자 컨트롤 을 사용 합니다.
  • 폼의 컨트롤 양과 달리 폼의 코드 양에서 복잡성이 발생하는 경우 표준 객체 지향 프로그래밍 기술을 사용하여 코드를 객체로 더 잘 캡슐화 할 수 있습니다. SOLID 원칙을 이해 하는 것이 좋은 출발점입니다.
  • 그렇지 않으면, 사용자 인터페이스 작업을위한 패턴이 있습니다. 무엇보다도 (문제의 분리가 두드러짐) 코드 구성을 용이하게합니다. 일반적인 예로 MVC , MVP , MVVM

귀하의 설명에서 지금은 사용자 정의 사용자 정의 컨트롤을 사용하여 현재 사용중인 패널을 대체합니다. 그런 다음 해당 사용자 정의 컨트롤을 패널이 있던 양식에 배치하십시오.


4

에서 윈폼 각 양식은 자신의 일을 처리해야합니다. 설정을위한 양식과 현재 백업을 표시하기위한 양식 등이 있어야합니다.

단일 양식의 여러 그룹을 고수하려면 SnOrfus가 말한 것처럼 코드를 분리하기 위해 User Controls을 만들 수 있습니다 . 일부 클래스에서 여전히 많은 코드로 끝나는 경우 부분 클래스 를 사용하여 다른 코드를 다른 파일로 분리 할 수 있습니다 .

부분 수업은 좋은 대안이 될 수 있지만 취미 프로젝트를 만들기 때문에 권장합니다. 더 크거나 복잡한 프로젝트의 경우 패턴을 사용하여 올바른 작업을 올바른 오브젝트에 위임해야하며, MVVM 과 같은 패턴을 사용하기 쉬운 WPF 와 같은 새로운 기술로 전환 할 수도 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.