방법: 누른 보조키 확인

업데이트: 2007년 11월

사용자의 키 입력을 받아들이는 응용 프로그램을 만들 때 Shift, Alt 및 Ctrl 키와 같은 보조키를 모니터링할 필요가 있습니다. 보조키를 다른 키 또는 마우스 클릭과 함께 누르면 응용 프로그램에서 적절하게 응답할 수 있습니다. 예를 들어, S 문자를 누르면 화면에 "S"가 나타나지만 Ctrl+S를 누르면 현재 문서가 저장됩니다. KeyDown 이벤트를 처리하면 이벤트 처리기가 받은 KeyEventArgsModifiers 속성에 따라 누르는 보조키가 지정됩니다. 또는 KeyEventArgsKeyData 속성에 따라 누르는 문자 및 비트 OR와 함께 사용할 보조키가 지정됩니다. 그러나 KeyPress 이벤트 또는 마우스 이벤트를 처리할 경우 이벤트 처리기에서 이 정보를 받지 않습니다. 이 경우에는 Control 클래스의 ModifierKeys 속성을 사용해야 합니다. 어떤 경우든 적절한 Keys 값과 테스트할 값의 비트 AND를 수행해야 합니다. Keys 열거형에서는 변형된 보조키를 각각 제공하므로 올바른 값과 비트 AND를 수행하는 것이 중요합니다. 예를 들어, Shift 키는 Shift, ShiftKey, RShiftKeyLShiftKey로 표시되며, Shift 키를 보조키로 테스트할 올바른 값은 Shift입니다. 마찬가지로, Ctrl 키와 Alt 키를 보조키로 테스트하려면 Control 값과 Alt 값을 각각 사용해야 합니다.

참고:

Visual Basic 프로그래머는 Keyboard 속성을 사용하여 키 정보에 액세스할 수도 있습니다. 자세한 내용은 My.Computer.Keyboard 개체를 참조하십시오.

누른 보조키를 확인하려면

  • ModifierKeys 속성 및 Keys 열거형 값에 비트 AND 연산자를 사용하여 특정 보조키를 눌렀는지 확인합니다. 다음 코드 예제에서는 KeyPress 이벤트 처리기 내에서 Shift 키를 눌렀는지 확인하는 방법을 보여 줍니다.

    Public Sub TextBox1_KeyPress(ByVal sender As Object, _
        ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress
    
        If ((Control.ModifierKeys And Keys.Shift) = Keys.Shift) Then
            MsgBox("Pressed " + Keys.Shift.ToString())
        End If
    End Sub
    
         public void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
                {
                    MessageBox.Show("Pressed " + Keys.Shift);
                }
            }
    
    private:
        void textBox1_KeyPress(Object^ sender, KeyPressEventArgs^ e)
        {
            if ((Control::ModifierKeys & Keys::Shift) == Keys::Shift)
            {
                MessageBox::Show("Pressed " + Keys::Shift.ToString());
            }
        }
    

참고 항목

작업

방법: Visual Basic에서 CapsLock이 켜져 있는지 확인

참조

Keys

ModifierKeys

기타 리소스

Windows Forms 응용 프로그램의 키보드 입력