MSDN의 this page에 따르면 Key Value
은 왼쪽 컨트롤입니다. 코드에서이 키가 눌러져 있는지 어떻게 알 수 있습니까? 현재 키 누르기를 시도 할 때마다 일반 제어 키인 17
값을 얻습니다. 두 가지를 구별 할 수있는 방법이 있습니까? ProcessCmdKey
을 무시하고 Textbox의 PreviewKeyDown
을 처리하려고 시도했지만 둘 다 162 대신 172를 반환합니다. 모든 수정 자 키에 대해이 작업을 수행해야하며 값을 하드 코드하기 전에 더 나은 방법으로 코드를 캡처하는 것이 좋습니다. ?특정 수정 자 키 캡처
편집 : 코드가 추가되었습니다. 명확히하기 위해 나는 수식어를 구별하는 다른 방법을 찾지 않고 162 숫자를 검색하려고합니다.
private void PortfolioNameTextBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
var val = e.KeyValue; //17 when control is pressed and not 162
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
//msg.Wparam = 17
return base.ProcessCmdKey(ref msg, keyData);
}
귀하의 양식 내에서 그리고 전 세계적으로)? –
코드를 추가했습니다. 양식 만 추가했습니다. – XSL
WinForms에서는 운이 나쁘다고 생각합니다. 응용 프로그램으로 전달되는 키 코드 만 처리 할 수 있습니다. 잠재적 인 해결 방법은 전역 키 후크를 설정하고 현재 응용 프로그램이 자신의 것인지 확인하는 것입니다. –