탭 순서 설정
예를 들어 Text1과 Text2라는 두 개의 TextBox를 만든 다음 Commandl이라는 CommandButton을 만든다고 가정합니다. 응용 프로그램이 시작되면 Text1에 포커스가 있습니다. Tab 키를 누르면 그림 3.20에 표시된 대로 포커스가 생성된 순서대로 컨트롤 간에 이동하게 됩니다.
TabIndex 속성을 설정하면 컨트롤의 탭 순서가 변경됩니다. 컨트롤의 TabIndex 속성은 탭 순서에서 해당 위치를 결정합니다. 기본 규칙에 따르면 처음 생성된 컨트롤의 TabIndex 값은 0이고 두 번째 컨트롤의 TabIndex 값은 1 등입니다. 컨트롤의 탭 순서 위치를 변경하면 Visual에서는 삽입 및 삭제를 반영하기 위해 다른 컨트롤의 탭 순서 위치 번호를 자동으로 다시 매깁니다. 예를 들어 Command1을 탭 키 시퀀스의 첫 번째로 만들려면 다음 표와 같이 다른 컨트롤의 TabIndex 값이 자동으로 위쪽으로 조정됩니다.
번호 매기기는 0부터 시작하므로 TabIndex의 최대값은 항상 탭 순서의 컨트롤 수보다 1이 적습니다. TabIndex 속성 값이 컨트롤 수보다 높더라도 Visual Basic에서는 이 값을 컨트롤 수에서 1을 뺀 값으로 변환합니다.
포커스를 얻을 수 없는 컨트롤과 유효하지 않거나 보이지 않는 컨트롤 에는 TabIndex 속성이 없으므로 탭 순서에 포함되지 않습니다. Tab 키를 누르면 이러한 컨트롤을 건너뜁니다.
탭 순서로 컨트롤 제거
일반적으로 런타임 중에 TAB 키를 누르면 탭 순서의 각 컨트롤이 선택됩니다. 탭 순서에서 컨트롤을 제거하려면 컨트롤의 TabStop 속성을 False(0)로 설정합니다.
TabStop 속성이 False로 설정된 컨트롤은 탭 키를 누를 때 컨트롤을 건너뛰는 점을 제외하고 실제 탭 순서에서 해당 위치를 계속 유지합니다.
OptionButton 그룹 에는 탭 스테이션이 하나만 있습니다. 선택한 단추(즉, 값이 True인 단추)의 TabStop 속성은 자동으로 True로 설정되고 다른 단추의 TabStop 속성은 False로 설정됩니다.
메뉴 기본 사항
응용 프로그램이 사용자에게 일련의 명령을 제공하는 경우 메뉴는 명령을 그룹화하고 사용자가 쉽게 액세스할 수 있도록 하는 편리한 방법을 제공합니다.
그림 3.21은 제목 없는 양식의 메뉴 인터페이스 요소를 보여줍니다.
메뉴 표시줄은 양식의 제목 표시줄 바로 아래에 나타나며 하나 이상의 메뉴 제목을 포함합니다. 메뉴 제목(예: "파일")을 클릭하면 메뉴 항목이 포함된 목록이 풀다운됩니다. 메뉴 항목에는 명령(예: 새로 만들기 및 종료), 구분 기호 및 하위 메뉴 제목이 포함될 수 있습니다. 사용자가 보는 각 메뉴 항목은 메뉴 편집기(메뉴 편집기에 대해서는 이 장의 뒷부분에서 설명)에 정의된 메뉴 컨트롤에 해당합니다.
애플리케이션을 간단하고 사용하기 쉽게 만들려면 메뉴 항목을 기능별로 그룹화해야 합니다. 예를 들어, 그림 3.21의 파일 관련 명령 "새로 만들기", "열기", "다른 이름으로 저장"은 모두 "파일" 메뉴에 나열되어 있습니다. 일부 메뉴 항목은 응용 프로그램을 닫는 "파일" 메뉴의 "종료" 메뉴 항목과 같은 작업을 직접 수행합니다. 다른 메뉴 항목에는 응용 프로그램이 작업을 수행하는 데 필요한 정보를 제공하도록 사용자에게 요청하는 창인 대화 상자가 표시됩니다. 이러한 메뉴 항목 뒤에는 줄임표(...)가 와야 합니다. 예를 들어 파일 메뉴에서 다른 이름으로 저장...을 선택하면 파일 다른 이름으로 저장 대화 상자가 나타납니다.
메뉴 컨트롤은 다른 개체와 마찬가지로 개체이며 모양과 동작을 정의하는 속성을 가지고 있습니다. 캡션 속성, 활성화 및 표시 속성, 확인 속성 및 기타 속성은 디자인 타임이나 런타임에 설정할 수 있습니다. 메뉴 컨트롤에는 마우스나 키보드로 메뉴 컨트롤을 선택할 때 호출되는 Click 이벤트라는 하나의 이벤트만 포함되어 있습니다.
메뉴 컨트롤에 대한 자세한 내용 은 6장, "사용자 인터페이스 생성"의 "메뉴 편집기를 사용하여 메뉴 생성"을 참조하십시오.
팝업 메뉴
팝업 메뉴는 그림 3.22에 표시된 것처럼 메뉴 표시줄과 별개로 양식에 표시되는 부동 메뉴입니다. 팝업 메뉴에 표시되는 항목은 마우스 오른쪽 버튼을 눌렀을 때 포인터의 위치에 따라 달라집니다. 따라서 팝업 메뉴를 컨텍스트 메뉴라고도 합니다. (Windows 95에서는 마우스 오른쪽 버튼을 클릭하면 컨텍스트가 활성화됩니다. 메뉴.) 팝업 메뉴를 사용하여 일반적인 상황에 맞는 명령에 액세스하는 효율적인 방법을 제공해야 합니다. 예를 들어 TextBox를 마우스 오른쪽 버튼으로 클릭하면 상황에 맞는 메뉴가 나타납니다(그림 3.22 참조).
하나 이상의 메뉴 항목이 있는 모든 메뉴는 런타임 시 팝업 메뉴로 표시될 수 있습니다. 팝업 메뉴를 표시하려면 PopupMenu 메서드를 사용합니다.
팝업 메뉴에 대한 자세한 내용 은 6장, "사용자 인터페이스 생성"의 "메뉴 편집기를 사용하여 메뉴 생성"을 참조하십시오.
메뉴 편집기 사용
"메뉴 편집기"를 사용하면 기존 메뉴에 새 명령을 추가하고, 기존 메뉴 명령을 자신의 명령으로 바꾸고, 새 메뉴와 메뉴 표시줄을 생성하고, 기존 메뉴와 메뉴 표시줄을 변경 및 삭제할 수 있습니다. 메뉴 편집기의 가장 큰 장점은 사용이 간편하다는 것입니다. 메뉴는 최소한의 프로그래밍만으로 완전한 대화형 방식으로 사용자 정의할 수 있습니다.
메뉴 편집기를 표시하려면,
"도구" 메뉴에서 "메뉴 편집기"를 선택하면 그림 3.23과 같이 "메뉴 편집기"가 열립니다.
대부분의 메뉴 컨트롤 속성은 메뉴 편집기를 사용하여 설정할 수 있습니다. 마찬가지로 모든 메뉴 속성은 속성 창에서 사용할 수 있습니다. 일반적으로 메뉴 편집기에서 메뉴를 생성하지만 개별 속성을 빠르게 변경하려면 속성 창을 사용하세요.
메뉴 생성 및 메뉴 편집기 사용에 대한 자세한 내용 은 6장, "사용자 인터페이스 생성"의 "메뉴 편집기를 사용하여 메뉴 생성"을 참조하십시오.
대화 상자를 사용하여 사용자에게 메시지 표시
Windows 기반 응용 프로그램에서는 응용 프로그램을 계속 실행하는 데 필요한 데이터를 사용자에게 묻는 메시지를 표시하거나 사용자에게 정보를 표시하는 데 대화 상자가 사용됩니다. 대화 상자는 다음 세 가지 방법 중 하나로 만들 수 있는 특별한 유형의 양식 개체입니다.
MsgBox 또는 InputBox 함수를 사용하는 코드는 미리 정의된 대화 상자를 만들 수 있습니다.
표준 형식을 사용하거나 기존 대화 상자를 사용자 정의하여 사용자 정의 대화 상자를 만듭니다.
CommonDialog 컨트롤을 사용하여 인쇄 및 파일 열기와 같은 표준 대화 상자를 만듭니다.
그림 3.24는 미리 정의된 대화 상자를 생성하기 위해 MsgBox 함수를 사용하는 예입니다.
코드에서 MsgBox 함수를 호출하면 대화 상자가 표시됩니다. 코드는 다음과 같습니다:
파일을 여는 동안 MsgBox오류가 발생했습니다.&vbCrLf&다시 시도하십시오.,vb느낌표,텍스트 편집기
MsgBox 함수에 메시지 텍스트, 대화 상자 유형을 결정하는 상수(숫자 값), 제목 등 세 가지 정보 또는 세 가지 매개 변수를 제공해야 합니다. 스타일에서 버튼과 아이콘의 다양한 조합을 사용할 수 있으므로 대화 상자를 만드는 것이 더 쉽습니다.
대부분의 대화 상자에는 사용자 상호 작용이 필요하므로 일반적으로 모달 대화 상자로 표시됩니다. 응용 프로그램의 다른 부분을 계속 사용하려면 먼저 모달 대화 상자를 닫아야 합니다(숨김 또는 언로드). 예를 들어, 다른 양식이나 다른 대화 상자로 전환하기 전에 "확인" 또는 "취소"를 클릭해야 한다면 이 대화 상자는 모달 대화 상자입니다.
모덜리스 대화 상자는 대화 상자와 다른 양식 간에 포커스를 이동할 수 있도록 닫을 필요가 없습니다. 대화 상자가 표시되는 동안 현재 응용프로그램의 다른 곳에서 계속 작업할 수 있습니다. 모덜리스 대화 상자는 드물며, 계속하기 전에 애플리케이션에 응답이 필요하기 때문에 일반적으로 표시됩니다. Visual Basic의 "편집" 메뉴에 있는 "찾기" 대화 상자는 모덜리스 대화 상자입니다. 모덜리스 대화 상자를 사용하여 자주 사용하는 명령이나 정보를 표시합니다.
추가 정보 대화 상자 생성에 대한 자세한 내용은 6장, "사용자 인터페이스 생성"을 참조하십시오.
->