본문 바로가기
프로그래밍/C Sharp

[ C# ] 키보드 보조키 (Ctrl , Shift , Alt)키 상태 확인하기

by jeong-f 2021. 11. 16.
반응형

보조키를 이용하여 단축키를 프로그램으로 구현할 경우가 있습니다. 보조키의 상태와 다른 키의 상태를 조합하여 프로그램을 구현하면 사용하기 편한 프로그램이 되며, 여러 가지 기능을 만들어 낼 수 있습니다.

여기에서는 조합키로 많이 사용되는 Control , Shift , Alt 키를 이용하여 메시지를 띄우는 프로그램을 구현하고자 합니다.

화면 구성

보조키를 누른 상태에서 버튼 클릭 시 메시지가 나타나도록 할 예정이므로 button 한 개만 추가하였습니다.

소스코드

보조키를 누른 상태에서 버튼을 누를 경우 메시지 박스를 띄웁니다.

private void button1_Click(object sender, EventArgs e)
{
    if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
    {
        MessageBox.Show("Shift 키눌림");
    }

    if ((Control.ModifierKeys & Keys.Alt) == Keys.Alt)
    {
        MessageBox.Show("Alt 키눌림");
    }

    if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
    {
        MessageBox.Show("Ctrl 키눌림");
    }
}

일반적으로 많이 사용되는 복사 붙여 넣기 명령인 Ctrl+c와 Ctrl+v도 구현해 보았습니다.

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    switch (keyData)
        {
            case Keys.Control | Keys.C:
                {
                    MessageBox.Show("Ctrl+C 눌림");
                    break;
                }
            case Keys.Control | Keys.V:
                {
                    MessageBox.Show("Ctrl+V 눌림");
                    break;
                }
        }

    return base.ProcessCmdKey(ref msg, keyData);
}

실행결과

     Ctrl 키를 누른 상태에서 버튼을 눌러 메시지 박스가 표시되었습니다.

관련 사이트

위의 키조합 외에도 Ctrl+Shift 키를 누른 상태에서의 작업도 가능합니다. MS사의 사이트에 해당 내용이 첨부되어있으니 참조하시기 바랍니다.

 

Check which modifier key is pressed - Windows Forms .NET

Learn how to detect when the SHIFT, ALT, or CTRL keys are pressed in Windows Forms for .NET.

docs.microsoft.com

 

반응형

댓글