MS Access 表单侧边栏菜单动画

Posted

技术标签:

【中文标题】MS Access 表单侧边栏菜单动画【英文标题】:MS Access Form Sidebar Menu Animation 【发布时间】:2017-12-18 18:10:28 【问题描述】:

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

表单列表非常混乱,但问题中实际使用的只有“菜单”和“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 是只读的。

【问题讨论】:

我不清楚问题是什么。你说的“区域外”是什么意思?子窗体必须放置在主窗体的尺寸内。您的代码中到底有什么失败?会发生什么 - 错误消息、错误结果,什么都没有? 我认为一个视频可以更好地描述它。我想要达到的目标(类似)imgur.com/a/sJeZ9 - 这是当前结果youtu.be/e4cd0nX8Xqw 【参考方案1】:

以下作品适合我:

    为重叠窗口设置数据库选项

    将主窗体 AutoResize 属性设置为 No 并调整大小,以便右边缘覆盖子窗体右边缘的一部分以占垂直滚动条空间

    将 ScrollBars 属性设置为两者都没有

    将子表单宽度设置为尽可能小(必须至少为其控件的宽度),并将 Visible 属性设置为 No

    消除表单加载事件

    使用切换而不是命令按钮

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

修改后的代码:

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

【讨论】:

这当然是一个好主意和相当不错的方法。不过,打开菜单时切换开关闪烁是否正常? 此处不闪烁。 可能是因为我试图将切换按钮与侧边菜单一起移动。 Preview - 如果你注意的话,当菜单关闭时切换开关会被隐藏,并且在播放动画时它会闪烁(闪烁,就像在将颜色更改为默认颜色一样)。 添加了移动按钮的代码。主要是平滑的运动和眨眼几乎不明显。似乎取决于速度(超时值)。该按钮不被表单隐藏。查看我修改后的代码。

以上是关于MS Access 表单侧边栏菜单动画的主要内容,如果未能解决你的问题,请参考以下文章

单击侧边栏时如何提交表单

Xamarin 表单 - 侧边菜单左侧栏、片段和列表视图

如何从标签栏打开侧边菜单

侧边栏下拉时箭头的旋转动画(treeView控件)

在代号一上使用自定义表单作为汉堡侧边菜单

CSS 位置帮助(动画内容结束时显示的水平侧边栏)