我一直试图创建一种侧边栏菜单,当你点击一个按钮时会弹出一段时间,出于某种原因,我无法做到。当我保存代码并打开表单进行测试时,"侧面菜单" (可以看到另一种形式),而不是在您可以看到的区域之外。 Imgur preview。
表单列表相当混乱,但问题中实际使用的唯一一个是"菜单"和#34; 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是只读的。
答案 0 :(得分:0)
以下为我效劳:
设置重叠Windows的数据库选项
将主窗体AutoResize属性设置为No并调整大小,使右边缘覆盖子窗体右边缘的一部分以考虑垂直滚动条空间
将ScrollBars属性设置为
将子窗体宽度设置得尽可能小(必须至少是其控件的宽度),将Visible属性设置为否
消除表单加载事件
使用Toggle而不是Command按钮
在代码中尝试各种常量组合
修订代码:
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