2009-05-28 7 views
0

데이터 입력 양식이 거의없는 매우 간단한 WinForms 응용 프로그램을 작성하고 있습니다. 그러나 사용자가 이러한 양식을 사용하기 전에 취할 조치 (즉, 검색어를 입력 한 후 열 수있는 양식)를 선택해야합니다. 이 응용 프로그램은 레거시 사용자 정의 DOS FoxPro 응용 프로그램을 다시 작성하므로 사용자는 UI를 가능한 한 이전 것과 비슷한 (읽기 쉽도록) 원합니다. (. 내가 좀 더 현대적인 UI로 마이그레이션하는 고객을 설득하는 방법에 대해 설명하고 싶지 않아 참고)WinForms의 메뉴와 유사한 간단한 탐색

자, UI는 다음과 같이한다 :

│--------------│ 
│ Customers >> │ │-----------------│ 
│ Invoices  │ │ Find customer │ 
│ -------------│ │ Create new  │ 
│ .. etc..  │ │ Delete customer │ 
│ -------------│ │-----------------│ 
│ Exit   │ 
│--------------│ 

메뉴가 있어야한다 상당히 크고 화면 (폼) 중간입니다. 이것은 고전적인 MenuStrip이 문제가되지 않는다는 것을 의미합니다. 적절한 항목으로 즉석에서 ListBox를 만들어야합니까? 어떻게이 접근합니까? 개체에 이미 탐색 구조가 저장되어 있으므로 사용자에게 탐색 UI를 제공하는 방법에 대한 조언을 찾고 있습니다.

또한이 경우 키보드 입력은 마우스 상호 작용보다 중요하고 중요합니다.

답변

0

저는 이것을 ToolStrip 컨트롤로 할 수 있다고 생각합니다. Dock = None 및 LayoutStyle = VerticalStackWithOverflow를 시작으로 설정하십시오.

1

이전 프로젝트는 DOS (클리퍼) 응용 프로그램을 Windows로 변환 한 것입니다.

- - - - - - - - - - - - - - - - - - - - - - - 
| Bolded Group Header | Bolded Group Header | 
| Item Link 1  | Item Link 3  | 
| Item Link 2  | Item Link 4  | 
- - - - - - - - - - - - - - - - - - - - - - - 

그룹 머리글을 두 번 클릭하면, 해당 그룹의 모든 링크가 한 번 백그라운드에서 열 수 것입니다 : 우리는 (단일 클릭 하이퍼 링크) 웹 느낌의 이상과, 그와 비슷한 뭔가 결정했다. 또한 응용 프로그램 컨텍스트 (예 : 선택한 고객)가 도구 모음을 통해 선택되었으므로 현재 고객 세부 정보가 항상 표시됩니다.

기술적으로 우리는 TPanel (C++ Builder에서 VCL을 사용함) 및 클라이언트 영역 레이블의 컨트롤을 사용했지만 .NET에서 비슷한 것을 쉽게 할 수있었습니다.

행운을 빈다.

EDIT : 키보드 지원에 대해 언급 한 이후 패널을 업데이트하면 패널에 모든 Windows 메시지와 키 스트로크가 표시되므로 패널에 응답하는 것은 전적으로 키보드 지원 이었지만 스스로 코딩해야했습니다. 뭔가 코딩하지 않고도 작동하는 무언가를 원한다면 ListBox 컨트롤 대신 ListView를 사용합니다.

1

나는 내 윈도우 ui에 Krypton 컨트롤 스위트를 사용하고 있으며, 사용하기 쉽고 툴킷은 무료입니다. 그것은 위대한 약간의 context menu 옵션을 가지고 있습니다. 메뉴 옵션 스택을 제공하는 탐색 컨트롤도 있습니다.

관련 문제