2
我有一個vb 6程序,其中窗體打開像一個電源點幻燈片我創建了一個文本框獲取鍵盤輸入像esc,左鍵,右鍵,向上鍵或向下鍵就像MS幻燈片。但是,當向表單添加許多控件時,用戶可能會點擊其中的任何一個,並且附加到我的文本框控件(我稱爲cmdline)的鍵碼將不起作用,除非向其他控件添加另一個代碼以強制將光標焦點cmdline聆聽鍵盤輸入
Private Sub cmdline_KeyDown(KeyCode As Integer, Shift As Integer)
'Space Key
If KeyCode = 32 Then
cmdPlay_Click
End If
'Page Up Key
If KeyCode = 33 Then
showFirstStanza
End If
'Page Down Key
If KeyCode = 34 Then
showLastStanza
End If
'End Key
If KeyCode = 35 Then
showLastStanza
End If
'Home Key
If KeyCode = 36 Then
showFirstStanza
End If
'Left key
If KeyCode = 37 Then
SavedThis = SaveSettings("projection_font_size", SiteSettings("projection_font_size") - 2)
lblSongText.FontSize = SiteSettings("projection_font_size")
End If
'Up Key
If KeyCode = 38 Then
cmdPrev_Click
End If
'Right Arrow
If KeyCode = 39 Then
SavedThis = SaveSettings("projection_font_size", SiteSettings("projection_font_size") + 2)
lblSongText.FontSize = SiteSettings("projection_font_size")
End If
'Down Arrow
If KeyCode = 40 Then
cmdNext_Click
End If
'Key C
If KeyCode = 67 Then
fonttypez = fonttypez - 1
Select Case fonttypez
Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
font_type_tosave
Case Else
fonttypez = 13
font_type_tosave
End Select
font_type_int
lblSongText.FontName = SiteSettings("projection_font_type")
End If
'Key V
If KeyCode = 86 Then
fonttypez = fonttypez + 1
Select Case fonttypez
Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
font_type_tosave
Case Else
fonttypez = 13
font_type_tosave
End Select
font_type_int
lblSongText.FontName = SiteSettings("projection_font_type")
End If
'Key X
If KeyCode = 88 Then
kala = kala + 1
Select Case kala
Case 1, 2, 3, 4, 5, 6, 7, 8
SavedThis = SaveSettings("preffered_theme", kala)
Case Else
kala = 1
SavedThis = SaveSettings("preffered_theme", kala)
End Select
SetProjectionTheme
End If
'Key Z
If KeyCode = 90 Then
kala = kala - 1
Select Case kala
Case 1, 2, 3, 4, 5, 6, 7, 8
SavedThis = SaveSettings("preffered_theme", kala)
Case Else
kala = 1
SavedThis = SaveSettings("preffered_theme", kala)
End Select
SetProjectionTheme
End If
'Add Key
If KeyCode = 107 Then
SavedThis = SaveSettings("projection_font_size", SiteSettings("projection_font_size") + 2)
lblSongText.FontSize = SiteSettings("projection_font_size")
End If
'Subtract Key
If KeyCode = 109 Then
SavedThis = SaveSettings("projection_font_size", SiteSettings("projection_font_size") - 2)
lblSongText.FontSize = SiteSettings("projection_font_size")
End If
End Sub
是否有人有一個代碼,可以幫助我沒有控制附加到它的鍵盤輸入。
順便說一句,使用菜單非常酷,因爲無論哪個控件被聚焦,鍵盤輸入都會很容易被捕獲。我不想使用這個表單上的菜單,除非它可以被隱藏。
[KeyPreview屬性:MSDN Visual Basic Reference](https://msdn.microsoft.com/en-us/library/aa235137(v = vs.60).aspx) –
但我沒有看到任何引用的內容 –
另外,您可能需要考慮使用'Select Case KeyCode','Case 32','cmdPlay_Click','Case ...','End Select'。你編碼它的方式,*所有*'If'語句在*每個*鍵擊上執行。 – Herb