VBA -重新排序访问2010导航表单标签索引



是否有一种方法可以动态地重新排序Access 2010导航表单上的导航按钮?

我想隐藏某些按钮取决于用户类型;但是,如果不能修改顺序,简单地隐藏它们会在按钮之间留下空白。

我试过下面类似的方法,但没有成功。

Me.NavigationButton1.TabIndex = 1  
Me.NavigationButton2.TabIndex = 0
Me.Requery 
Me.Refresh

提前感谢。

NavigationButtons的工作方式略有不同。它们在NavigationControl容器中管理,如果隐藏底层按钮,则不会自动调整大小。

然而,你可以试试这个,它对我有效:

' Always remember the normal size of the button '
Static bt1Witdh as Long
if bt1Width = 0 then bt1Width = Me.NavigationButton1.Width
' Now hide the button '
Me.NavigationButton1.Width = 0
Me.NavigationButton1.Visible = False  
' Unhide the button '
Me.NavigationButton1.Visible = true  
Me.NavigationButton1.Width = bt1Width

你可以通过使用控件的Tag属性作为跟踪其正常宽度的临时存储,使其更加通用和有点"hacky":

Public Sub HideNavigationButton(bt As NavigationButton)
    ' Store the width if we haven't already done so '
    If bt.Tag = vbNullString Then bt.Tag = CStr(bt.Width)
    bt.Width = 0
    bt.Visible = False
End Sub
Public Sub ShowNavigationButton(bt As NavigationButton)
    If bt.Visible Or bt.Width > 0 Then Exit Sub
    bt.Visible = True
    bt.Width = CInt(bt.Tag)
End Sub

使用它:

' Hide '
HideNavigationButton Me.NavigationButton1
' Show '
ShowNavigationButton Me.NavigationButton1

相关内容

  • 没有找到相关文章

最新更新