2013-03-18 2 views
0

숫자 패드에 해당하는 9 개의 확인란 집합을 만들려고합니다. 예를 들어 숫자 패드에서 "7"키를 누르면 왼쪽 위의 확인란이 선택됩니다 그에 따라 선택을 취소하십시오.C#의 확인란에 핫키 프로그래밍

내가 확인할 수없는 것은 KeyDown이 현재 페이지에 포커스가있는 것과 관계없이 항목을 선택할 수 있도록 표시하는 방법과 KeyDown을 해당 확인란으로 가리켜 키를 만드는 방법입니다 선택 또는 선택 해제가 전환됩니다. 귀하의 의견을 보내 주셔서 감사합니다.

+1

Winforms/WPF? – Andrey

+0

Windows Forms 설치 프로그램을 사용하고 있습니다. – Tim

+1

form.keypreview = true; form.onkeydown –

답변

0

양식에 KeyPreview 속성을 True으로 설정하십시오.

폼에 대한 KeyDown 이벤트 처리기를 만듭니다.

KeyDown 핸들러가이 유사한 코드가 있어야합니다 당신이 스위치 문을 좋아하지 않는 경우에

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
    switch (e.KeyCode) 
    { 
     case Keys.NumPad1: 
      Toggle(checkBox1); break; 
     case Keys.NumPad2: 
      Toggle(checkBox2); break; 
     case Keys.NumPad3: 
      Toggle(checkBox3); break; 
     ... 
     default: 
      break; 
    } 
} 

private void Toggle(CheckBox checkbox) 
{ 
    checkbox.Checked = !checkbox.Checked; 
} 

을, 또 다른 대안은 체크 박스에 키를 매핑 사전을 설정하는 것입니다. 그런 다음 키 입력에서 키가 사전에 있는지 확인하고, 그렇다면 확인란을 선택하고 토글합니다.