.NET에서 keycode를 keychar으로 변환하려면 어떻게해야합니까? VB.NET에서키 코드를 키 문자로 변환
답변
:
ChrW(70)
C#에서 당신이 캐스팅 할 수 있습니다
(char) 70
Convert.ToChar(65)
대신 String.fromCharCode (event.keyCode)
이것은 JavaScript를 사용하는 사용자에게 .NET이 아닌 Javascript입니다. – x4000
DaveH에게 답장을 보낼 수없는 것 같습니다.하지만 그가 말한대로하면 괜찮습니다. 나는이 사람들이에 null 값을 제출하려고있는에 괜찮은 솔루션이 될 것으로
Private Sub StartValue_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles StartValue.KeyPress
If ChrW(13).ToString = e.KeyChar And StartValue.Text = "" Then
StartValue.Text = "0"
End If
End Sub
을 :
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public sub harry()
For i = 1 to 255
If Chr(i) = Convert.ToChar(Keys.Enter) Then
Label1.Text &= " [Enter] "
ElseIf Chr(i) = Convert.ToChar(Keys.Delete) Then
Label1.Text &= " [Delete] "
End If
Next i
End Sub
그리고 코드에서 WinAPI에 대한 호출 사용법은 무엇입니까?! –
나는 키 입력에서 키 누름을 감지에 오히려 도움이 될이 조각을 발견 텍스트 상자. 이것은 단지 0을 강제하지만, "enter enter being pressed"를 사용하여 실행합니다.
user32.dll의 라이브러리 클래스를 사용하여이 문제를 해결했습니다. Framework 클래스를 선호하지만이 클래스를 찾을 수 없어서이 기능이 작동했습니다.
Imports System.Runtime.InteropServices
Public Class KeyCodeToAscii
<DllImport("User32.dll")> _
Public Shared Function ToAscii(ByVal uVirtKey As Integer, _
ByVal uScanCode As Integer, _
ByVal lpbKeyState As Byte(), _
ByVal lpChar As Byte(), _
ByVal uFlags As Integer) _
As Integer
End Function
<DllImport("User32.dll")> _
Public Shared Function GetKeyboardState(ByVal pbKeyState As Byte()) _
As Integer
End Function
Public Shared Function GetAsciiCharacter(ByVal uVirtKey As Integer) _
As Char
Dim lpKeyState As Byte() = New Byte(255) {}
GetKeyboardState(lpKeyState)
Dim lpChar As Byte() = New Byte(1) {}
If ToAscii(uVirtKey, 0, lpKeyState, lpChar, 0) = 1 Then
Return Convert.ToChar((lpChar(0)))
Else
Return New Char()
End If
End Function
End Class
ToAscii가 핵심 기능인 +1입니다. 그러나 MSDN에서 발언을 참조하십시오. * 이전 죽은 키가 키보드 레이아웃에 저장되어 있기 때문에 ToAscii 함수에 제공된 매개 변수로 가상 키 코드를 변환하기에 충분하지 않을 수 있습니다. * http://msdn.microsoft.com /en-us/library/windows/desktop/ms646316(v=vs.85).aspx --- 또한 ToUnicode를 대신 사용해보십시오. – peterchen
이 시도 : 여기
Char.ConvertFromUtf32(e.KeyValue)
이 방법은 Shift 상태를 고려하지 않습니다. 예를 들어, 키 코드/값 65는 'A'를 반환하지만 눌려진 키는 Shift를 사용하지 않고 'a'였습니다. – Christoph
예를 내 측면에서 :)이 (다른 답변처럼 지금까지) 정확하지
#region Just for fun :D
private string _lastKeys = "";
private readonly Dictionary<string, string[]> _keyChecker = _
new Dictionary<string, string[]>
{
// Key code to press, msgbox header, msgbox text
{"iddqd", new[] {"Cheater! :-)", "Godmode activated!"}},
{"idkfa", new[] {"Cheater! :-)", "All Weapons unlocked!"}},
{"aAa", new[] {"Testing", "Test!"}},
{"aaa", new[] {"function", "close"}}
};
private void KeyChecker(KeyPressEventArgs e)
{
_lastKeys += e.KeyChar;
foreach (var key in _keyChecker.Keys)
if (_lastKeys.EndsWith(key))
if (_keyChecker[key][0] != "function")
MessageBox.Show(_keyChecker[key][1], _keyChecker[key][0]);
else
KeyCheckerFunction(_keyChecker[key][1]);
while (_lastKeys.Length > 100)
_lastKeys = _lastKeys.Substring(1);
}
private void KeyCheckerFunction(string func)
{
switch (func)
{
case "close":
Close();
break;
}
}
private void FormMain_KeyPress(object sender, KeyPressEventArgs e)
{
KeyChecker(e);
}
#endregion Just for fun :D
이 답변에는 변환을위한 키 코드가 없습니다. – Christoph
- 1. onkeydown에 의해 수집 된 키 입력을 JavaScript의 문자로 변환
- 2. 유니 코드를 루비 문자로 변환
- 3. 16 진수 코드를 문자로 변환
- 4. 키 코드에서 키 구문 분석하기
- 5. : 키 키
- 6. HTML ASCII 코드를 해당 문자로 변환
- 7. SWT : 키 코드를 문자열로 변환합니다.
- 8. 순회 다음 코드를 고려하면 키
- 9. 두 번으로 사전 키 변환
- 10. 사전 키 시퀀스를 집합으로 변환
- 11. 키/값에서 다차원 배열로 변환
- 12. WPF 키 다운에서 키 변경
- 13. GWT에서 네이티브 키 코드가 아닌 키 코드를 가져올 수 있습니까?
- 14. 순회 키 이상/키
- 15. 키
- 16. 수퍼 키 대 후보 키
- 17. 키 관리 : 공공/하위 키
- 18. 코드를 통해 어셈블리의 공개 키 찾기
- 19. bash 스크립트로 Xorg + wine에 키 코드를 보내십시오.
- 20. 키보드 입력 : 사용자로부터받은 키 코드를 분리하는 방법
- 21. Keychain없이 개인 키 ACL에 코드를 추가하십시오.
- 22. 테이블 열을 키 값 쌍으로 변환
- 23. 키 값 쌍 목록을 해시 테이블로 변환
- 24. django 기본 키 목록으로 개체 목록을 변환
- 25. 변환 키. Compact Framework에서 char로 입력
- 26. Vim, CSS 키 맵을 함수로 변환
- 27. C#에서 "키"열거 형 값을 "int"문자로 변환하려면 어떻게해야합니까?
- 28. 숫자를 문자로 변환
- 29. 문자열을 문자로 변환
- 30. 문자열을 문자로 변환
. 국회 의사당 'A'의 경우 작동하지만 예를 들어 실패합니다. 키 조합 및 숫자 키패드의 경우 가능한 해결책은 Windows Forms에서'KeyPress' 이벤트를 청취하거나 WPF/Silverlight에서'TextInput' 이벤트를 청취하는 것입니다. –
'Convert.ToChar (190)'(OEMPeriod)를 사용하면 내가 기대했던 것처럼 '¾'이 아니라 '¾'이되었습니다. – MCattle