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

[ C# ] 키보드 기능키 ( Num Lock, Caps Lock , Scroll Lock ) 확인하기

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

가끔 문서 편집기를 열면 아래에 Num , Cap, Scroll 키 즉 고정으로 사용되는 키의 값을 표시하는 경우가 있습니다.

문서 편집 프로그램 제작 시 화면에 표시하면 사용자가 자신의 키보드의 상태를 알게 되어 오입력을 막을 수 있습니다.

화면 구성

아래 상태에 ToolStripStatusLable인 NUM , CAP , SCR을 추가하였습니다.

소스코드

폼 로딩 시 Application.Idle 이벤트의 변화가 있을 때 키보드의 입력 상태를 체크하면 추가 코딩이 필요 없습니다.

Idle 상태는 프로그램이 유휴 상태. 즉, 응용프로그램이 처리를 끝내고 쉬는 시간에 체크를 하는 것으로 이때 상태를 체크하면 오동작이 줄어든다고 보시면 됩니다.

protected override void OnLoad(EventArgs e)
{
    Application.Idle += delegate(object sender, EventArgs arg)
    {
        tssNum.Enabled = Control.IsKeyLocked(Keys.NumLock);
        tssCap.Enabled = Control.IsKeyLocked(Keys.CapsLock);
        tssScr.Enabled = Control.IsKeyLocked(Keys.Scroll);
    };
}

실행결과

키보드에서 "Caps Lock "을 고정시키면 프로그램에 [ CAP ]가 활성화됩니다.

관련 사이트

Application.Idle 관련 MS 문서 사이트입니다.

 

Application.Idle Event (System.Windows.Forms)

Occurs when the application finishes processing and is about to enter the idle state.

docs.microsoft.com

 

반응형

댓글