0

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

表格列表非常混乱,但问题中实际使用的唯一表格是“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 是只读的。

4

1 回答 1

0

以下对我有用:

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

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

  3. 将 ScrollBars 属性设置为既不

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

  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
于 2017-12-18T21:21:46.690 回答