还有人在这里编程VBA吗?
我试图让这段代码正常工作
Private Sub button3_click()
'hide main buttons
button1.Visible = False
button2.Visible = False
button3.Visible = False
'show submenu buttons
button4.Visible = True;
button5.Visible = True;
End Sub
我尝试做的基本上是我有一个主窗体,有5个主按钮控件。其中2个在启动时隐藏。因此,当我单击按钮3时,我想要隐藏前3个主按钮,并且"取消隐藏"另外两个。 尝试执行此事件时,出现错误
" 运行时错误2165 - 您无法隐藏具有焦点的控件"。
以前有人遇到过这方面的编程吗?我确定它可行。我只是不明白这里出了什么问题......
答案 0 :(得分:7)
在隐藏当前控件之前,将焦点更改为其中一个可见控件
Private Sub button3_click()
'show submenu buttons
button4.Visible = True
button5.Visible = True
DoEvents 'execute any pending events, to make sure the button 4 and 5 are really visible
button4.SetFocus 'change the focus to a now visible control
DoEvents 'execute any pending events, to make sure that button4 really has the focus
'now you can hide the other buttons
'hide main buttons
button1.Visible = False
button2.Visible = False
button3.Visible = False
End Sub
也许你可以跳过DoEvents命令,你应该尝试
答案 1 :(得分:1)
我原本以为这个错误是明确的。在运行代码之前,将焦点移动到您不想隐藏的某个控件上。另外,请考虑Me
:http://msdn.microsoft.com/en-us/library/aa223099(v=office.11).aspx