【发布时间】:2018-09-15 11:12:33
【问题描述】:
我正在 MS Access/VBA 中编写代码以将另一个表单从普通模式更改为设计模式,然后尝试选择一个 TextBox 控件并将其更改为 Combobox。
我现在面临的问题是我找不到 SetFocus 到这个控件的方法。在普通模式下我可以写:
Form_Name.Control.SetFocus
但当此表单处于设计模式时,该代码不起作用。在设计模式下的另一个表单中设置焦点(通过 VBA)到此控件的另一种方法,例如在设计模式下编辑时在该控件中手动单击?
**编辑:**正确的是在设计模式下选择特定的表单控件而不是设置焦点
【问题讨论】:
-
焦点用于接收用户输入。设计模式下的表单无法接收用户输入。您无需将焦点设置在控件上即可以编程方式对其进行操作。
-
@SunKnight0 你是对的。我编辑了我的问题,我的意思是在设计模式下选择控件而不设置焦点
-
您仍然过于专注于尝试以与使用 GUI 相同的方式复制编辑表单。您无需选择任何内容即可使用 VBA 操作其属性。您很可能无法像在 GUI 中那样将 TextBox 转换为 ComboBox。这只是一个 GUI 快捷方式,用于删除一个控件并添加另一个具有相似属性的控件,这可能是您必须要做的。
-
@SunKnight0 你刚刚睁开了我的眼睛。我不知道在幕后,更改控件类型实际上是删除它并创建另一个。谢谢!
-
如果您要经常这样做,那么您应该在特定时间为您需要的控件设置 .visible = true ,而不是重复删除/创建对象。然后在需要用户输入时调用正确的控件。