Visual Studio를 사용하여 C #에서 GUI 응용 프로그램을 만들고 있습니다. 도구 상자는 멋진 구성 요소 팔레트 역할을하여 버튼과 다른 요소 ( "제어"를 의미 할 때마다 버튼이라고 명료 함)를 양식에 쉽게 끌어서 놓을 수있어 정적 양식을 매우 쉽게 수행 할 수 있습니다. 그러나 두 가지 문제가 발생합니다.
- 처음에 버튼을 만드는 것은 많은 작업입니다. 정적이 아닌 양식이있는 경우 (예 : 사용자의 작업에 따라 버튼 또는 기타 컨트롤이 런타임에 작성 됨) 팔레트를 전혀 사용할 수 없습니다. 대신 사용중인 모든 메소드에서 생성자를 호출하여 각 버튼을 수동으로 생성 한 다음 버튼 높이, 너비, 위치, 레이블, 이벤트 핸들러 등을 지정하여 수동으로 초기화해야합니다. 폼의 모양을 보지 않고 이러한 모든 미용 매개 변수를 추측해야하기 때문에 매우 지루하고 각 버튼마다 반복되는 많은 코드가 생성됩니다.
- 버튼으로 무언가를하는 것도 많은 작업입니다. 모든 기능을 갖춘 응용 프로그램에서 이벤트를 처리하는 것은 큰 고통입니다. 내가하는 방법을 아는 유일한 방법은 버튼을 선택하고 속성의 이벤트 탭으로 이동하여 이벤트를 클릭하여 코드
OnClick
에서 이벤트를 생성 한 다음 이벤트Form
본문을 채우는 것입니다. 논리와 프리젠 테이션을 분리하려고하므로 모든 이벤트 핸들러는 결국 적절한 비즈니스 논리 기능에 대한 단일 행 호출이됩니다. 그러나 많은 버튼에 이것을 사용하면 (예를 들어, MS Word와 같은 응용 프로그램에 존재하는 버튼의 수를 상상해보십시오) 내 코드Form
를 수십 개의 상용구 이벤트 처리기 메소드로 오염 시키므로 이것을 유지하기가 어렵습니다.
이 때문에 Hello World보다 복잡한 GUI 프로그램은 실제로 저에게 실제로 비현실적입니다. 분명히, 나는 UI가 최소한 인 프로그램의 복잡성을 다루는 데 아무런 문제가 없습니다. 비즈니스 로직 코드를 깔끔하게 구성하기 위해 상당한 수준의 역량으로 OOP를 사용할 수 있다고 생각합니다. 그러나 GUI를 개발할 때 나는 붙어 있습니다. 바퀴를 재발 명하는 것처럼 지루한 것처럼 보이며, 읽지 않은 GUI를 올바르게 수행하는 방법을 설명하는 책이 있습니다.
뭔가 빠졌습니까? 아니면 모든 C # 개발자가 반복적 인 이벤트 처리기 및 버튼 생성 코드의 끝없는 목록을 수락합니까?
(희망스럽게 도움이되는) 힌트로서, 나는 좋은 대답이 다음에 대해 이야기 할 것으로 기대합니다.
- 반복되는 버튼 생성을 단순화하기 위해 OOP 기술 (예 : 팩토리 패턴) 사용
- 많은 이벤트 핸들러를 단일 메소드로 결합하여
Sender
호출 한 단추 를 확인 하고 그에 따라 작동 - XAML 및 Windows Forms 대신 WPF 사용
당신은하지 않습니다 이 물론,이 중 하나를 언급. 내가 어떤 종류의 답변을 찾고 있는지에 대한 최선의 추측 일뿐입니다.