2

在窗体上选择一个控件后,在属性窗口的最顶部会显示控件的名称和类型,并且在下方的下拉菜单中有一个包含更多控件的列表。如果我单击其中一个列表项,它会选择表单上的该控件。

1) 这个下拉菜单的正确名称是什么?

2) 是什么决定了哪些控件出现在下拉列表中?

3) 我怎样才能让任何给定的控件出现在下拉列表中?即在一个非常繁忙的表格上,我知道我在某个地方有一定的控制权,但我看不到它。我想在下拉菜单上选择它,这样它就会知道它的位置,但我不知道如何在那个菜单上找到它。

4

2 回答 2

2

我将其称为“属性窗口”下拉列表。控件似乎以分层/概述的方式显示,尽管并不总是直观的。

例如,我将引用一个带有 Frame、Multipage 和 Commandbutton 控件的表单,我将它们称为“顶级”控件。

有两个级别的控件选择:一个控件以浅色点画为边界,另一种控件以深色哈希标记为边界。我称第一个为“激活”,第二个为“选择”。您可以通过按选项卡或在“属性窗口”下拉列表中选择它来“激活”控件。您可以通过 Tab 键选择它,然后单击 Enter,或者在其边框内单击来“选择”它。(如果您通过在“属性窗口”下拉列表中选择控件来激活它,单击 Enter 将不会选择它。)

当您第一次选择用户表单时,它将显示在下拉列表中。当您单击下拉列表时,会列出三个顶级控件。如果您通过在下拉列表中选择它来激活多页,您的下拉选项将不会改变。如果您选择 Multipage(如上所述)Multipage,则它是当前活动的页面,并且该页面上的控件将被列出。用户窗体本身不会被列出。如果您以相同的方式选择 Frame,您将得到类似的结果:将列出 Frame 及其顶级控件,而不会列出 UserForm。

我认为浏览复杂表单的最佳方式是使用 Tab。如果您选择了表单并开始使用选项卡,您将循环浏览所有顶级控件。单击 Enter 将带您“进入”控件。如果该控件具有子控件(例如,Multipage),则您可以通过它们进行选项卡。在没有子控件的控件上按 Enter 会使您进入该控件的编辑模式。例如,在激活命令按钮的情况下按 Enter 会使您进入字幕编辑模式。

如果您在带有子控件(例如 Frame)的控件“内部”,则可以通过选项卡浏览子控件。一旦您在所有子控件中进行了选项卡,单击选项卡将带您返回一个级别,例如,命令按钮将被选中。

请注意,您还可以通过按 Esc 键“退出”到下一个级别。因此,如果您在按钮上处于编辑模式,Esc 将带您回到刚刚选择按钮的状态。如果您在框架内选择了一个控件,Esc 将选择该框架。多次按 Esc 会将您带回选择表单本身的根级别。

直到您的问题促使我进行调查,我才知道其中的大部分内容,因此感谢您帮助我学习!这是一个令人困惑的话题,所以我希望我的写作有点清楚。

于 2011-06-04T17:41:05.220 回答
0

解决 OP 的子弹

  1. 属性窗口下拉菜单的正确名称是什么?

    • 对象

      对象框列出了当前选定的对象。只有活动表单中的对象可见。如果您选择多个对象,则对象的通用属性及其设置(基于选择的第一个对象)将显示在“属性列表”选项卡上。
      来源:属性窗口 UI 帮助

    • 或者也许是属性对象框,用于区别于代码对象框

      对象框是窗口左上角的列表框,它列出了窗体和代码附加到的窗体中的控件,或者是位于属性窗口顶部的列表框,列出了窗体及其控制。
      资料来源:VBE 词汇表

  2. 什么决定了哪些控件出现在下拉列表中?

    • 有很多方法可以回答,但我认为容器是您问题的关键;容器是可以容纳其他对象的对象
      • 如果对象是容器,则对象框将仅列出选定对象及其包含的每个对象;它不会列出容器外的任何子容器或对象的内容示例:用户窗体、框架和工作表
      • 如果所选对象不是容器,则对象框会列出父容器和父容器中的对象;它不会列出父容器之外的任何子容器或对象的内容
  3. 如何使任何给定的控件出现在下拉列表中?

    • 知道你的容器在哪里以及它们包含什么我必须稍后重新审视这个答案。没时间了

已接受答案的更正点

准确:

  • 如果您通过在“属性窗口”下拉列表中选择控件来激活它,单击 Enter 将不会选择它。

是的,问题只是焦点问题!

有焦点的窗口是接收击键的窗口;或者要使用答案中的命名法,属性窗口必须先获得焦点才能“激活”控件,而对象窗口必须先获得焦点,然后才能“选择”活动控件。

  • 解决方案只是使用Shift F7将焦点发送到对象窗口,以便它接收击键命令以“选择”活动控件。

应对拥挤的表格

如果您像我一样,那么您拆解的表格比您愿意承认的要多,因为手指抽搐将控件埋在邻居的某个地方;很可能在您花了最后一小时打磨的复杂嵌套中。

  1. 从“属性”窗口“激活”控件
  2. Shift F7将焦点设置在对象窗口上
  3. Enter以“选择”“活动”控件。
    • 如果你幸运的话,即使它可能不可见,你也可以用鼠标抓住它。
    • 否则,更改放错位置的控件的Top//可能是找到它的最快方法LeftZ order您可以按 F4 将焦点设置在属性窗口上,然后按 Ctrl + Shift + T 循环到Top(或 L for Left

于 2019-11-19T05:08:41.193 回答