Access (的 Form.GotFocus 事件)
GotFocus 事件發生於焦點指定的物件。
語法
運算式。GotFocus
expression 代表 Form 物件的變數。
註解
若要在這些事件發生時執行宏或事件程序,請將 OnGotFocus 屬性設定為宏的名稱或 [事件程序]。
當焦點移動以回應使用者動作時,例如按 Tab 鍵或按一下物件,或在 Visual Basic 中使用 SetFocus 方法或宏中的 SelectObject、GoToRecord、GoToControl 或 GoToPage 巨集指令時,就會發生這些事件。
只有在 其 Visible 和 啟用 屬性會設為 [是] 控制項可以收到焦點。 只有當它沒有任何控制項或所有可見的控制項已停用表單才能接收焦點。 如果表單包含任何可見、 已啟用的控制項,則不會發生 GotFocus 事件表單。
您可以指定當表單或控制項收到焦點 GotFocus 事件發生時執行巨集或事件程序會發生什麼事。 例如,將 GotFocus 事件程序附加於每一個表單上的控制項,您可以指引使用者透過您的應用程式顯示在文字方塊中的簡短說明或訊息。 您也可以提供視覺提示啟用、 停用,或顯示取決於控制項具有焦點的控制項。
注意事項
若要自訂當您按下 Tab 鍵時,焦點從控制項移至表單上控制項的順序,請設定定位順序或指定控制項的便捷鍵。
GotFocus 事件與 Enter 事件,因為每次在控制項收到焦點時就會發生 GotFocus 事件。 例如,假設使用者按一下表單上] 核取方塊然後按一下 [報表並最後按一下 [將它移到前景表單上核取方塊。 GotFocus 事件會發生這兩個核取方塊會收到焦點的次數。 相較之下,會發生 Enter 事件只會在使用者按一下核取方塊第一次。 GotFocus 事件會發生 Enter 事件之後。
如果您將焦點移至表單上控制項和控制項沒有焦點 離開 該表單上及表單上沒有焦點的控制項 LostFocus 事件之前發生 Enter 和 GotFocus 事件控制項您移動至。
如果您用滑鼠將焦點從主表單中的控制項移到該表單之子表單中的控制項,則發生下列事件:
- 結束 (如主表單上的控制項)
- LostFocus (如主表單上的控制項)
- 輸入 (適用於子表單控制項)
- 結束 (適用於子表單中具有焦點的控制項)
- LostFocus (適用於子表單中具有焦點的控制項)
- 輸入 (適用於子表單中焦點的控制項)
- GotFocus (適用於子表單中焦點的控制項)
如果您在子表單上移至 的控制項先前擁有焦點,則不會發生其 Enter 事件或 GotFocus 事件,但子表單控制項的 Enter 事件確實發生。 如果您將焦點從子表單上的控制項移至主表單上的控制項,子表單上控制項的 Exit 和 LostFocus 事件不會發生,只有子表單控制項的 Exit 事件,以及主表單上控制項的 Enter 和 GotFocus 事件。
注意事項
您通常會使用滑鼠或 Tab 之類的索引鍵,將焦點移至另一個控制項。 此時除了本主題所討論的事件之外,還會引發滑鼠或鍵盤事件。
兩個開啟的表單之間進行切換, Deactivate 事件發生於第一個表單,並 Activate 事件發生在第二個表單。 如果表單包含不可見,啟用 LostFocus 事件會發生 Deactivate 事件之前的第一個表單的控制項,並 GotFocus 事件會在發生第二個表單的 Activate 事件之後。
範例
下列範例會在焦點移到選項按鈕時將訊息顯示於標籤上。 若要嘗試此範例,請將下列事件程序新增至名為 Contacts 的表單,其中包含名為 OptionYes 的 選項按鈕和名為 LabelYes 的標籤。
Private Sub OptionYes_GotFocus()
Me!LabelYes.Caption = "Option button 'Yes' has the focus."
End Sub
Private Sub OptionYes_LostFocus()
Me!LabelYes.Caption = "" ' Clear caption.
End Sub
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。