SetFocus 方法將焦點移到特定的窗體、活動窗體上特定的控件,或者活動數(shù)據(jù)表的特定字段上。
expression.SetFocus
expression 必需。返回“應(yīng)用于”列表中的一個對象的表達式。
使用 SetFocus 方法可以讓特定字段或控件獲得焦點以便所有用戶輸入都針對這個對象。
要讀取控件的某些屬性,該控件必須具有焦點。例如,在能讀取文本框的 Text 屬性之前,該文本框必須具有焦點。
某些屬性只有在控件沒有焦點時才能設(shè)置。例如,當一個控件具有焦點時,不能將該控件的 Visible 或 Enabled 屬性設(shè)為 False(0)。
也可以使用 SetFocus 方法根據(jù)某些條件在窗體中定位。例如,如果用戶為問卷窗體上一組問題中的第一個選擇了 Not applicable,則 Visual Basic 代碼可以自動跳過這一組問題,并將焦點移到下一組問題中的第一個控件。
只能將焦點移到可見的控件或窗體上。窗體和窗體上的控件在窗體的 Load 事件已經(jīng)結(jié)束后才可見。因此,如果在窗體的 Load 事件中使用 SetFocus 方法將焦點移到該窗體,則必須在 SetFocus 方法之前使用 Repaint 方法。
如果控件的 Enabled 屬性設(shè)為 False,則不能將焦點移到該控件上。在將焦點移到該控件之前,必須將其 Enabled 屬性設(shè)為 True(-1)。但如果該控件的 Locked 屬性設(shè)為 True,則可以將焦點移到該控件上。
如果窗體包含了 Enabled 屬性設(shè)為 True 的控件,則不能將焦點移到窗體本身,而只能將焦點移到窗體控件上。在這種情況下,如果試圖用 SetFocus 將焦點移到窗體上,則焦點將移到窗體中上次獲得焦點的控件上。
SetFocus子窗體SetFocus
下面的示例使用 SetFocus 方法將焦點移到“雇員”窗體上的“雇員ID”文本框中:
Forms!Employees!EmployeeID.SetFocus