SetFocus 方法将焦点移到特定的窗体、活动窗体上特定的控件,或者活动数据表的特定字段上。
expression.SetFocus
expression 必需。返回“应用于”列表中的一个对象的表达式。
使用 SetFocus 方法可以让特定字段或控件获得焦点以便所有用户输入都针对这个对象。
要读取控件的某些属性,该控件必须具有焦点。例如,在能读取文本框的 Text 属性之前,该文本框必须具有焦点。
某些属性只有在控件没有焦点时才能设置。例如,当一个控件具有焦点时,不能将该控件的 Visible 或 Enabled 属性设为 False(0)。
也可以使用 SetFocus 方法根据某些条件在窗体中定位。例如,如果用户为问卷窗体上一组问题中的第一个选择了 Not applicable,则 Visual Basic 代码可以自动跳过这一组问题,并将焦点移到下一组问题中的第一个控件。
只能将焦点移到可见的控件或窗体上。窗体和窗体上的控件在窗体的 Load 事件已经结束后才可见。因此,如果在窗体的 Load 事件中使用 SetFocus 方法将焦点移到该窗体,则必须在 SetFocus 方法之前使用 Repaint 方法。
如果控件的 Enabled 属性设为 False,则不能将焦点移到该控件上。在将焦点移到该控件之前,必须将其 Enabled 属性设为 True(-1)。但如果该控件的 Locked 属性设为 True,则可以将焦点移到该控件上。
如果窗体包含了 Enabled 属性设为 True 的控件,则不能将焦点移到窗体本身,而只能将焦点移到窗体控件上。在这种情况下,如果试图用 SetFocus 将焦点移到窗体上,则焦点将移到窗体中上次获得焦点的控件上。
SetFocus子窗体SetFocus
下面的示例使用 SetFocus 方法将焦点移到“雇员”窗体上的“雇员ID”文本框中:
Forms!Employees!EmployeeID.SetFocus