2010-04-08 9 views
0

설치 프로그램과 같은 인터페이스가있는 프로그램을 만들고 있습니다. Form 클래스의 ShowDialog 메서드로 구현하거나 MDI 인터페이스를 사용하는 것이 더 낫습니까?UI 문제 만들기

1) 첫 번째 형태 ShowInTaskbar 속성은 true로 설정되어, 다른 형태가 false로 설정 : 아래는 내가 ShowDialog 방법을 사용하여 그것을 시도하는 방법, 그리고 그들과 함께 가지고있는 문제입니다. 형태는 버튼 "Next>" 클릭 이벤트, 클릭 이벤트 "<Back"에 대한 응답으로 .ShowDialog() 메소드에 의해 표시되고 .Close() 메소드를 호출합니다. 이 경우 양식이 모달 모드로 표시됩니다. 나에게 좋지 않은 경험입니다.

2) 모든 양식에는 ShowInTaskbar 속성이 true로 설정되어 있습니다. 폼은 버튼 "Next>"의 클릭 이벤트에 대한 응답으로 .ShowDialog() 메소드에 의해 표시됩니다 (동일한 이벤트 핸들러는 폼을 숨기기 위해 .Visible=false을 설정합니다). 클릭 이벤트가 "<Back"이면 .Close() 메서드가 호출됩니다. 이 경우 Next 또는 Back을 누르면 새 창을 닫고 열 때 작업 표시 줄에 표시됩니다.

답변

1

일반적으로 마법사 유형 인터페이스는 하나의 창 (Form)을 가지며 Next/Back 버튼의 내용을 대체하여 구현됩니다.

Visual C++에서 MFC, ATL/WTL 또는 Win32를 제안하는 질문에 태그를 붙였을 때 사용하는 UI 프레임 워크가 다소 혼란 스럽지만 .NET과 함께 언급 한 메서드 및 속성 WinForms를 제안하십시오.

WinForms를 사용하는 경우 가장 쉬운 방법은 현재 여러 양식에있는 컨트롤 그룹이 포함 된 여러 개의 Panel 인스턴스를 양식에 만들고 어느 버튼이 맞았는지에 따라 오른쪽 Panel을 표시/숨기는 것입니다 (이전에 표시되는 내용은 Panel입니다.)

대안으로 숨겨진 탭 버튼이있는 TabControl을 사용하고 버튼을 눌렀을 때 선택한 탭만 변경하면됩니다.

generic wizard control의 몇 가지 샘플 구현을 제공하는 블로그 게시물입니다.

wizard dialog problem 및 이에 대한 다양한 접근 방식을 설명하는 social.msdn.com의 이전 스레드와 더 많은 구현에 대한 더 유용한 링크.

DevExpress는 구성 요소에 대한 예산이 있고 약간의 시간과 노력을 절약하려는 경우 상업용 Wizard 컨트롤을 제공합니다.