在窗体上选择一个控件后,在属性窗口的最顶部会显示控件的名称和类型,并且在下方的下拉菜单中有一个包含更多控件的列表。如果我单击其中一个列表项,它会选择表单上的该控件。
1) 这个下拉菜单的正确名称是什么?
2) 是什么决定了哪些控件出现在下拉列表中?
3) 我怎样才能让任何给定的控件出现在下拉列表中?即在一个非常繁忙的表格上,我知道我在某个地方有一定的控制权,但我看不到它。我想在下拉菜单上选择它,这样它就会知道它的位置,但我不知道如何在那个菜单上找到它。
我将其称为“属性窗口”下拉列表。控件似乎以分层/概述的方式显示,尽管并不总是直观的。
例如,我将引用一个带有 Frame、Multipage 和 Commandbutton 控件的表单,我将它们称为“顶级”控件。
有两个级别的控件选择:一个控件以浅色点画为边界,另一种控件以深色哈希标记为边界。我称第一个为“激活”,第二个为“选择”。您可以通过按选项卡或在“属性窗口”下拉列表中选择它来“激活”控件。您可以通过 Tab 键选择它,然后单击 Enter,或者在其边框内单击来“选择”它。(如果您通过在“属性窗口”下拉列表中选择控件来激活它,单击 Enter 将不会选择它。)
当您第一次选择用户表单时,它将显示在下拉列表中。当您单击下拉列表时,会列出三个顶级控件。如果您通过在下拉列表中选择它来激活多页,您的下拉选项将不会改变。如果您选择 Multipage(如上所述)Multipage,则它是当前活动的页面,并且该页面上的控件将被列出。用户窗体本身不会被列出。如果您以相同的方式选择 Frame,您将得到类似的结果:将列出 Frame 及其顶级控件,而不会列出 UserForm。
我认为浏览复杂表单的最佳方式是使用 Tab。如果您选择了表单并开始使用选项卡,您将循环浏览所有顶级控件。单击 Enter 将带您“进入”控件。如果该控件具有子控件(例如,Multipage),则您可以通过它们进行选项卡。在没有子控件的控件上按 Enter 会使您进入该控件的编辑模式。例如,在激活命令按钮的情况下按 Enter 会使您进入字幕编辑模式。
如果您在带有子控件(例如 Frame)的控件“内部”,则可以通过选项卡浏览子控件。一旦您在所有子控件中进行了选项卡,单击选项卡将带您返回一个级别,例如,命令按钮将被选中。
请注意,您还可以通过按 Esc 键“退出”到下一个级别。因此,如果您在按钮上处于编辑模式,Esc 将带您回到刚刚选择按钮的状态。如果您在框架内选择了一个控件,Esc 将选择该框架。多次按 Esc 会将您带回选择表单本身的根级别。
直到您的问题促使我进行调查,我才知道其中的大部分内容,因此感谢您帮助我学习!这是一个令人困惑的话题,所以我希望我的写作有点清楚。
属性窗口下拉菜单的正确名称是什么?
对象框
对象框列出了当前选定的对象。只有活动表单中的对象可见。如果您选择多个对象,则对象的通用属性及其设置(基于选择的第一个对象)将显示在“属性列表”选项卡上。
来源:属性窗口 UI 帮助
或者也许是属性对象框,用于区别于代码对象框
对象框是窗口左上角的列表框,它列出了窗体和代码附加到的窗体中的控件,或者是位于属性窗口顶部的列表框,列出了窗体及其控制。
资料来源:VBE 词汇表
什么决定了哪些控件出现在下拉列表中?
- 如果对象是容器,则对象框将仅列出选定对象及其包含的每个对象;它不会列出容器外的任何子容器或对象的内容示例:用户窗体、框架和工作表
- 如果所选对象不是容器,则对象框会列出父容器和父容器中的对象;它不会列出父容器之外的任何子容器或对象的内容
如何使任何给定的控件出现在下拉列表中?
这不准确:
是的,问题只是焦点问题!
有焦点的窗口是接收击键的窗口;或者要使用答案中的命名法,属性窗口必须先获得焦点才能“激活”控件,而对象窗口必须先获得焦点,然后才能“选择”活动控件。
如果您像我一样,那么您拆解的表格比您愿意承认的要多,因为手指抽搐将控件埋在邻居的某个地方;很可能在您花了最后一小时打磨的复杂嵌套中。
Top
//可能是找到它的最快方法Left
。Z order
您可以按 F4 将焦点设置在属性窗口上,然后按 Ctrl + Shift + T 循环到Top
(或 L for Left
)