如何在VBA中隐藏按钮控件

时间:2012-01-28 21:53:53

标签: ms-access button onclick access-vba

还有人在这里编程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 - 您无法隐藏具有焦点的控件"。

以前有人遇到过这方面的编程吗?我确定它可行。我只是不明白这里出了什么问题......

2 个答案:

答案 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)

我原本以为这个错误是明确的。在运行代码之前,将焦点移动到您不想隐藏的某个控件上。另外,请考虑Mehttp://msdn.microsoft.com/en-us/library/aa223099(v=office.11).aspx