我想要啓動用戶窗體時只需按下一個數字並按下Enter(所以不需要點擊)。我遇到的問題是按Enter鍵兩次。如果我按Enter鍵,會發生什麼?第一次是關注Doorgaan
,第二次後輸入它實際上是「點擊」Doorgaan
。激活只有一個'輸入'的用戶窗體
有誰知道我怎樣才能改變這種一進入?
我想要啓動用戶窗體時只需按下一個數字並按下Enter(所以不需要點擊)。我遇到的問題是按Enter鍵兩次。如果我按Enter鍵,會發生什麼?第一次是關注Doorgaan
,第二次後輸入它實際上是「點擊」Doorgaan
。激活只有一個'輸入'的用戶窗體
有誰知道我怎樣才能改變這種一進入?
只需在VBE中的properties
內設置Doorgaan
至Default
即可。每個表單只有一個元素,可以是default
。按下Enter
時,默認元素將被激活。所以,如果您將該按鈕設置爲Default = True
,那麼當您按下回車鍵時,該按鈕的代碼將會運行。
您也可以在運行時改變它Default
元素,像這樣:
UserForm1.btnDoorgaan.Default = True
順便說一句,還有一個元素設置爲Cancel = True
的選項。當您在鍵盤上點擊Escape
時,該元素被激活。因此,如果您將Cancel
按鈕添加到您的表單並將其分配給Cancel = True
,則只需按Escape
即可輕鬆關閉並退出該表單。
拉爾夫的解決方案是實現它,如果你有一個簡單的形式,像你這樣的
如果你有多個按鈕,或者使用標籤,而不是按鈕,你可以做這樣的事情
Private Sub TxtBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then Me.Hide 'or CommandButton1_Click
End Sub
我不確定這是否對每個人都是明顯的。所以,我想詳細說明這個解決方案:(a)當我的解決方案在該窗體中任何時候按** **任何**時捕獲「Enter」鍵,並且在該特定文本框中按下時,您的解決方案僅捕獲「Enter」 (b)您的解決方案可能會擴展以支持ALT + s或ALT + t以「按下」更復雜表單上的其他按鈕。我上面展示的解決方案僅僅是微軟爲「Enter」鍵和「Escape」鍵所設計的簡單解決方案。所有其他鍵(或組合)都可以使用此解決方案捕獲。 – Ralph
如果最簡單的方法你只需輸入一位數字就可以使用TextBox上的'KeyUp'事件來將焦點設置到'Doorgaan'命令按鈕上,然後你只需要在Doorgaan按鈕上按Enter一次。 –
Excel是否有'''GotFocus事件'''? [Access has](https://msdn.microsoft.com/EN-US/library/office/ff822451.aspx)。如果是,那麼處理這個事件並嘗試執行按鈕的單擊事件處理程序,可能有可能嗎? – dee
@ScottHoltzman太糟糕了,它必須是多位數,這樣才行。 – Iluvpresident