Share via


보조 키 누름을 확인하는 방법(Windows Forms .NET)

사용자가 애플리케이션에 키를 입력할 때 SHIFT 키, ALT 키 및 CTRL 키와 같은 누른 보조 키를 모니터링할 수 있습니다. 보조 키를 다른 키 또는 마우스 클릭과 함께 누를 때 애플리케이션이 적절하게 응답할 수 있습니다. 예를 들어 S 키를 누르면 “s”가 화면에 표시될 수 있습니다. 키 CTRL+S를 누르면 현재 문서가 저장될 수 있습니다.

중요

.NET 7 및 .NET 6에 관한 데스크톱 가이드 설명서는 제작 중입니다.

KeyDown 이벤트를 처리하는 경우 이벤트 처리기가 수신한 KeyEventArgs.Modifiers 속성은 눌리는 보조 키를 지정합니다. 또한 KeyEventArgs.KeyData 속성은 비트 OR로 결합된 모든 보조 키와 함께 눌리는 문자를 지정합니다.

KeyPress 이벤트 또는 마우스 이벤트를 처리하는 경우 이벤트 처리기는 이 정보를 수신하지 않습니다. Control 클래스의 ModifierKeys 속성을 사용하여 키 한정자를 검색합니다. 두 경우 모두 적절한 Keys 값 및 테스트 중인 값의 비트 AND를 수행해야 합니다. Keys 열거형은 각 보조 키의 변형을 제공하므로 올바른 값으로 비트 AND 확인을 수행하는 것이 중요합니다.

예를 들어 SHIFT 키는 다음 키 값으로 표시됩니다.

보조 키로 SHIFT 키를 테스트하기 위한 올바른 값을 Keys.Shift입니다. 마찬가지로 한정자로 CTRL 키 및 ALT 키를 테스트하려면 각각 Keys.ControlKeys.Alt 값을 사용해야 합니다.

보조 키 검색

ModifierKeys 속성 및 Keys 열거형 값을 비트 AND 연산자와 비교하여 보조 키를 눌렀는지 검색합니다.

다음 코드 예제에서는 KeyPressKeyDown 이벤트 처리기 내에서 SHIFT 키를 눌렀는지를 확인하는 방법을 보여 줍니다.

// Event only raised when non-modifier key is pressed
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
        MessageBox.Show("KeyPress " + Keys.Shift);
}

// Event raised as soon as shift is pressed
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
        MessageBox.Show("KeyDown " + Keys.Shift);
}
' Event only raised when non-modifier key is pressed
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs)
    If ((Control.ModifierKeys And Keys.Shift) = Keys.Shift) Then
        MessageBox.Show("KeyPress " & [Enum].GetName(GetType(Keys), Keys.Shift))
    End If
End Sub

' Event raised as soon as shift is pressed
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs)
    If ((Control.ModifierKeys And Keys.Shift) = Keys.Shift) Then
        MessageBox.Show("KeyPress " & [Enum].GetName(GetType(Keys), Keys.Shift))
    End If
End Sub

참고 항목