일부 프로그램에는 몇 가지 단축키(예: 최소화하려면 Shift 키, 종료하려면 ESC 키, 저장하려면 Ctrl+S, 종료하려면 Alt+x 등)가 있다는 것을 알고 있습니다. 과거에 Win32 API를 사용하여 수행할 수 있다는 소개가 있었지만 실제로는 VB 자체에서 이미 이 기능을 제공했습니다.
새로운 폼 Form1을 만들어 보겠습니다. 키보드 작업의 경우 KeyPress(), KeyDown 및 KeyUp이라는 세 가지 이벤트를 볼 수 있습니다. 아래에서 각각 소개하겠습니다.
KeyPress() 이벤트는 사용자가 ANSI 키(ANSI는 눈에 보이는 ASCII 문자 1-127)를 눌렀다 놓으면 발생합니다.
문법
부분 설명
object는 값이 목록의 개체에 "적용되는" 개체 표현식입니다.
index는 컨트롤 배열의 컨트롤을 고유하게 식별하는 정수입니다(컨트롤 배열에만 사용 가능).
keyascii는 표준 숫자 ANSI 키 코드를 반환하는 정수입니다. Keyascii는 객체를 참조로 전달하여 객체 변경을 가능하게 합니다.
다른 문자를 보내세요. keyascii를 0으로 변경하면 키 입력이 취소되어 개체에 문자가 수신되지 않습니다.
설명하다
포커스가 있는 개체가 이 이벤트를 받습니다. KeyPreview 속성이 True로 설정된 경우에만 양식이 이 이벤트를 수신할 수 있습니다. KeyPress 이벤트는 인쇄 가능한 키보드 문자, 표준 알파벳의 문자 또는 CTRL 키, ENTER 또는 BACKSPACE 키와 함께 사용되는 몇 가지 특수 문자 중 하나를 참조할 수 있습니다. KeyPress() 이벤트 프로시저는 TextBox 또는 ComboBox 컨트롤에 입력된 키 입력을 가로챌 때 유용합니다. 키 입력이나 형식 문자 입력 시 유효성을 즉시 테스트할 수 있습니다. keyascii 매개변수의 값을 변경하면 표시되는 문자가 변경됩니다.
다음 표현식을 사용하여 keyascii 매개변수를 문자로 변환할 수 있습니다.
설명하다
두 이벤트 모두에서 초점이 맞춰진 개체는 모든 키 입력을 받습니다. 양식에 표시되고 유효한 컨트롤이 없는 경우에만 양식에 포커스를 얻을 수 있습니다. KeyDown() 및 KeyUp() 이벤트는 대부분의 키에 적용될 수 있지만 가장 일반적으로 적용되는 항목은 다음과 같습니다. 기능 키, 탐색 키, 키보드 수정자 키 및 키 조합과 같은 확장 문자 키, 숫자 키패드와 일반 숫자 키 구별 키를 눌렀다가 떼는 데 모두 응답해야 하는 경우 KeyDown 및 KeyUp 이벤트 프로시저를 사용할 수 있습니다.
다음 상황에서는 KeyDown 및 KeyUp 이벤트를 참조할 수 없습니다. Default 속성이 True로 설정된 경우 양식에 CommandButton 컨트롤과 Enter 키가 있습니다. 양식에는 CommandButton 컨트롤이 있고 Cancel 속성이 True로 설정된 경우 ESC 키, TAB 키, KeyDown 및 KeyUp은 두 개의 매개 변수를 사용하여 각 문자의 대문자 및 소문자 형태를 해석합니다. keycode - 물리적 키를 표시합니다(A 대체) 및 a는 동일한 키로 반환됨) 및 Shift-Shift+키 키의 상태를 표시하고 A 또는 a 중 하나를 반환합니다.
이동 매개변수를 테스트해야 하는 경우 매개변수에 정의된 이동 상수를 사용할 수 있습니다. 이 상수의 값은 다음과 같습니다.
상수 값 설명
vbShiftMask 1 HIFT 키 비트
방패.
VbCtrlMask 2 CTRL 키
비트 마스크.
VbAltMask 4 ALT 키 비트
방패.
이 상수는 모든 키 조합을 테스트하는 데 사용할 수 있는 비트 마스크 역할을 합니다.
참고: KeyPreview 속성이 True로 설정된 경우 양식은 양식의 컨트롤보다 먼저 이 이벤트를 받습니다. KeyPreview 속성을 사용하여 전역 키보드 처리 루틴을 만들 수 있습니다.
위의 지식을 바탕으로 바로 가기 키를 사용하여 완벽한 프로그램을 만들 수 있습니다. 예를 들어 프로그램에서 Ctrl+S를 사용하여 저장하고, Shift를 사용하여 최소화하고, Alt+X와 ESC를 사용하여 종료해야 합니다.
먼저 VB를 시작하고 새 EXE 파일을 선택하고, Form1 폼에서 TextBox를 끌어오고, Form1의 KeyPreview 속성을 True로 설정하고, Form1을 두 번 클릭하고, Form의 KeyPress 이벤트를 선택한 후 다음 코드를 입력하세요.