【问题标题】:Microsoft Access z-index propertyMicrosoft Access z-index 属性
【发布时间】:2013-05-07 05:07:25
【问题描述】:

我有一个包含列表框的表单。我正在尝试更改列表框的顺序。我尝试将前面或发送回来,但它们在表单视图中不起作用。我找到了 z index 属性来安排它们的优先级。但是,以下代码不起作用。这是正确的方法吗?或者有没有其他方法可以使用或不使用代码来做到这一点?

Me.Controls.SetChildIndex (Me.List0 , Me.List1)

感谢您的帮助。

【问题讨论】:

  • 错误信息是什么意思?您在使用带有 Access 的 VBA 吗?
  • 它说语法错误,是的,我在 VBA 上,但我不确定这些代码是否正确。

标签: ms-access z-index send back


【解决方案1】:

我在一个 Access 表单上执行此操作:我想要在顶部的控件我只是将它剪切并粘贴回表单,然后将它移动到我想要覆盖的那个上。在这种情况下,它是一个文本框(已绑定),与组合框(未绑定)的大小几乎相同;只有组合的下拉菜单向文本框的右侧扩展了一点,所以当加载表单时,文本框看起来像一个组合框。用户单击下拉菜单并做出选择,拉出的记录会反映在文本框中。

【讨论】:

    【解决方案2】:
    docmd.RunCommand acCmdDesignView
    
    forms("form1").Controls("text0").inselection=true
    
    docmd.runcommand acCmdSendToBack '(or docmd.runcommand acCmdBringToFront)
    
    docmd.RunCommand acCmdFormView
    

    此外,Access 2016 仍然不支持 ZOrder。因此,我还没有学会编写单行代码将控件置于其他两个之间的方法,我只是将中间发送到后面,然后背靠背,并将其扩展到许多控件必须重叠。

    最后,即使您使用 VBA 表示 ZOrder,您的英语听起来确实有点像 forms("form1").Controls("text0").TabIndex=34,正如 Olek 建议的那样,这也很简单。

    【讨论】:

      【解决方案3】:

      不使用代码: 您可以通过右键单击任何控件并选择“位置”然后选择“置于前面”或“置于后面”来更改 z 顺序。

      不幸的是,Access 支持使用代码进行操作的ZOrder 方法。 Microsoft Forms确实支持 ZOrder 方法,当它出现在 Access 帮助中时会让人感到困惑。

      当我重读您的问题时,我想知道您是否在谈论 tab 顺序。如果是这样,右键单击并调出“属性”,选择“其他”选项卡,然后调整“选项卡索引”属性。此外,请确保紧接下方的“制表位”属性设置为“是”。在代码中,您将使用FormName.ControlName.TabIndex=0 将控件设置为第一个制表符位置。

      希望这会有所帮助!

      参考:个人经历(和挫折时间)

      【讨论】:

        猜你喜欢
        • 2014-03-23
        • 2015-02-11
        • 1970-01-01
        • 1970-01-01
        • 2023-01-13
        • 1970-01-01
        • 2013-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多