我已經複製並稍微修改了this post底部的代碼,以允許在我創建的工作表窗體上的窗體控件之間切換。下面是有關的鍵碼= vbKeyEnter段:輸入密鑰模擬點擊不起作用的複選框
Select Case KeyCode
Case vbKeyTab
Dim Backward As Boolean
Backward = (Shift And fmShiftMask)
Call MoveFocus(Cntrl:=Cntrl, TabIndex:=TabIndex, Backward:=Backward)
Case vbKeyEnter
Select Case TypeName(Cntrl)
Case TxtBoxType
If Not (Cntrl.EnterKeyBehavior And Cntrl.MultiLine) Then
Call MoveFocus(Cntrl:=Cntrl, TabIndex:=TabIndex)
End If
Case Else
On Error Resume Next
Application.Run Sheet1.CodeName & "." & Cntrl.name & "_Click"
On Error GoTo 0
End Select
End Select
代碼工作正常對照之間互聯前進和後退。但是,使用Enter鍵來檢查和取消選中複選框控件時遇到了麻煩。它適用於選項按鈕,但不起作用複選框。如果我將CheckBox1.Value = True
添加到CheckBox1_Click事件中,它會檢查它是否爲true,但自然不會允許它將其選中爲false。我已經嘗試添加下面的IF語句,根據當前值將其設置爲true或false,但沒有任何反應。
If CheckBox1.Value = True Then
CheckBox1.Value = False
Else
CheckBox1.Value = True
End If
另注:當我按下回車鍵沒有反應到表單控件下移的活動列的活動單元格。有什麼建議麼?
空格鍵一直是切換複選框的可接受方法。你爲什麼要重寫Windows GUI系統? – Jeeped
我猜我不知道空格鍵是複選框切換(仍然有點綠色)。此外,我要創建表單的人請求它 - 使用左手在數字鍵盤上選擇並右鍵輸入鍵。我會確保空格鍵爲我工作,並詢問這是否足以滿足他。如果沒有,有沒有辦法讓它與enter一起工作?謝謝你的幫助,Jeeped。 – SincereApathy
'如果KeyCode = 13 Then CheckBox1.Value = Not CheckBox1.Value'按照想要的方式工作... –