MS Access 窗体边栏菜单动画

MS Access Form Sidebar Menu Animation

我一直在尝试创建一种侧边栏菜单,当您单击按钮时会弹出该菜单已经有一段时间了,但由于某种原因,我无法做到这一点。当我保存代码并打开表格进行测试时,可以看到 "side menu"(这是另一种表格),而不是超出您可以看到的区域。 Imgur preview

表单列表非常混乱,但问题中实际使用的唯一表单是 "Menu" 和 "TestFormFormForm"(不要问名字)。我使用的代码如下。

Option Compare Database

Private Sub Command2_Click()
    Dim x As Integer
    x = 0
    Do
        DoEvents
        Menu.Left = Menu.Left - 100
        timeout (0.0075)
        x = x + 1
    Loop Until x = 50
End Sub

Private Sub Form_Load()
    Me.ScrollBars = 0
    Menu.Left = Me.Width + 1000
    Menu.Move _
        Left:=Me.Width + 1000, Top:=500
End Sub

Sub timeout(duration_ms As Double)
    Start_Time = Timer
    Do
    DoEvents
    Loop Until (Timer - Start_Time) >= duration_ms
End Sub

我也尝试过使用 Me.WindowWidth = XYZ,直到我意识到 WindowWidth 是只读的。

以下适合我的作品:

  1. 为重叠设置数据库选项Windows

  2. 将主窗体自动调整大小 属性 设置为否并调整大小,使右边缘覆盖子窗体右边缘的一部分以考虑垂直滚动条 space

  3. 将 ScrollBars 属性 设置为两者都不

  4. 将子窗体宽度设置得尽可能小(必须至少是其控件的宽度)并将可见 属性 设置为否

  5. 消除表单加载事件

  6. 使用切换而不是命令按钮

  7. 在代码中尝试各种常量组合

修改后的代码:

Private Sub Toggle4_Click()
    Dim x As Integer
    Me.Menu.Visible = True
    Do
        DoEvents
        Me.Menu.Width = Me.Menu.Width + IIf(Me.Toggle4, 200, -200)
        Me.Menu.Left = Me.Menu.Left - IIf(Me.Toggle4, 200, -200)
        Me.Toggle4.Left = Me.Toggle4.Left - IIf(Me.Toggle4, 200, -200)
        timeout (0.01)
        x = x + 1
    Loop Until x = 10
    Me.Menu.Visible = Me.Toggle4
End Sub