>  기사  >  백엔드 개발  >  C# WinForm_php 기술의 단축키 사용자 정의 예

C# WinForm_php 기술의 단축키 사용자 정의 예

WBOY
WBOY원래의
2016-05-16 20:25:111178검색

이 기사의 소스 코드 다운로드: http://xiazai.jb51.net/201501/tools/cs-key-setting.rar

프로젝트 개발 과정에서 아래 그림과 같이 Youdao Dictionary와 유사한 소프트웨어 설정에서 사용자 정의 단축키 기능을 구현해야 합니다.

Ctrl Alt M을 차례로 누르면 소프트웨어가 자동으로 텍스트 상자에 단축키를 표시합니다.

최종 효과는 아래와 같습니다.

핵심 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

private void keyDown(객체 전송자, KeyEventArgs e)
{
StringBuilder keyValue = new StringBuilder();
​ keyValue.Length = 0;
​ keyValue.Append("");
If (e.Modifiers != 0)
{
           if (e.Control)
              keyValue.Append("Ctrl ");
          if (e.Alt)
              keyValue.Append("Alt ");
만약 (e.Shift)
              keyValue.Append("Shift ");
}
If ((e.KeyValue >= 33 && e.KeyValue <= 40) ||
(e.KeyValue >= 65 && e.KeyValue <= 90) || //a-z/A-Z
(e.KeyValue >= 112 && e.KeyValue <= 123)) //F1-F12
{
         keyValue.Append(e.KeyCode);
}
else if ((e.KeyValue >= 48 && e.KeyValue <= 57)) //0-9
{
         keyValue.Append(e.KeyCode.ToString().Substring(1));
}
This.ActiveControl.Text = "";
//현재 활성 컨트롤의 텍스트 내용 설정
This.ActiveControl.Text = keyValue.ToString();
}

private void keyUp(객체 전송자, KeyEventArgs e)
{
문자열 str = this.ActiveControl.Text.TrimEnd();
int len ​​​​= str.Length;
If (len >= 1 && str.Substring(str.Length - 1) == " ")
{
This.ActiveControl.Text = "";
}
}

e.KeyValue와 문자의 대응

字符 e.KeyValue
a-z|A-Z 65-90
F1-F12 112-123
0-9 48-57
PageUp 33
PageDown 34
End 35
Home 36
左(←) 37
上( ↑ ) 38
右(→) 39
下( ↓ ) 40

다음으로 텍스트 상자 컨트롤에 대해 각각 _KeyDown 및 _KeyUp 이벤트를 설정하고 그 안에서 위의 두 가지 핵심 함수를 호출합니다.

아래 그림과 같습니다.

코드 복사 코드는 다음과 같습니다.

private void textBox1_KeyDown(개체 전송자, KeyEventArgs e)
{
KeyDown(발신자, e);
}

private void textBox1_KeyUp(객체 전송자, KeyEventArgs e)
{
KeyUp(발신자, 전자);
}


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.