Form_KeyDown等で押されたキーを列挙し、文字列に変換するサンプルを記載します。
ショートカットキーを設定したい場合など、この方法が使えます。
続きを読む
使用例

例えばこんな感じに使用します。
ショートカットキーの設定でよく見るアレです。
実行環境
Microsoft Visual Studio 2008 Professional(VB.NET)
.NET Framework 2.0
※2003/2005でも、それ以降でも同じことができます。
サンプルコード
以下に押されているキーを"+"で連結した文字列に変換する関数を示します。
1. |
2. |
3. |
4. |
5. |
6. |
7. |
8. |
9. |
10. |
11. |
12. |
13. |
14. |
15. |
16. |
17. |
18. |
19. |
20. |
21. |
22. |
23. |
24. |
25. |
26. |
27. |
28. |
29. |
30. |
31. |
32. |
33. |
34. |
35. |
36. |
37. |
38. |
39. |
40. |
41. |
42. |
43. |
44. |
45. |
46. |
47. |
48. |
49. |
50. |
51. |
52. |
53. |
54. |
55. |
56. |
57. |
58. |
59. |
60. |
61. |
62. |
63. |
64. |
65. |
66. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Public Function GetKeyString(ByVal avKeyData As System.Windows.Forms.Keys) As String |
Dim myKeysString As String = vbNullString |
|
|
|
|
If Keys.None <> (avKeyData And Keys.Modifiers) Then |
Dim myString As String = (avKeyData And Keys.Modifiers).ToString() |
|
myString = myString.Replace(",", "+") |
myString = myString.Replace(" ", "") |
myKeysString = myString |
End If |
|
|
|
|
Dim myMaskedKeys As System.Windows.Forms.Keys = (avKeyData And Keys.KeyCode) |
|
|
|
|
Select Case myMaskedKeys |
Case System.Windows.Forms.Keys.Menu |
Case System.Windows.Forms.Keys.Shift |
Case System.Windows.Forms.Keys.ShiftKey |
Case System.Windows.Forms.Keys.ControlKey |
Case System.Windows.Forms.Keys.Control |
Case System.Windows.Forms.Keys.None |
Case Else |
|
|
|
If Not String.IsNullOrEmpty(myKeysString) Then |
myKeysString += "+" |
End If |
myKeysString += myMaskedKeys.ToString |
End Select |
|
Return myKeysString |
End Function |
|
テキストボックスでの使用例
|
Private Sub TextBox1_KeyDown(ByVal sender As Object, |
ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown |
|
|
TextBox1.Text = GetKeyString(e.KeyData) |
|
|
End Sub |
|