在我的子窗体(ms-access中的VBA)中,有一个名为“测试”的按钮,单击该按钮后必须将其设置为不可见。
所以我尝试了:
Private Sub Test_Click()
'Do some stuff
Me.Test.Visible = False
End Sub
但这不起作用。因为无法使具有焦点的按钮不可见,所以会引发错误。不幸的是,该按钮是表单上的唯一按钮(其他控件是标签)。由于按钮位于子窗体中,因此我尝试将焦点设置为父级中的按钮:
Private Sub Test_Click()
'Do some stuff
call me.parent.schclose.SetFocus
Me.Test.Visible = False
End Sub
但这也不起作用。 'call me.parent.schclose.SetFocus'不会引发错误,但'Me.Test.Visible = False'像以前一样。
那么,如何使按钮不可见?
答案 0 :(得分:3)
您可以做的是扩展您的用户表单,并添加一个默认情况下可见的按钮。假设当前您的用户表单的高度为300,宽度为300。将表单扩展为500X500,然后将新按钮放在该表单的右下角(将visible属性设置为Yes)。接下来,将此代码添加到表单中:
Private Sub UserForm_Initialize()
Me.Height = 300
Me.Width = 300
End Sub
现在,当单击测试按钮时,它将不可见,而新按钮仍处于隐藏状态,因为它不在您设置的高度范围内。
答案 1 :(得分:-1)
受VBA_SQL_Programmer答案的启发,我在表单中创建了一个空的只读编辑字段,其中包含一个透明边界(这基本上是不可见的),用于将焦点设置为该字段。
所以我的代码如下:
Private Sub Test_Click()
'Do some stuff
call me.invisibleTextBox.SetFocus
Me.Test.Visible = False
End Sub
此方法无需操纵表格的大小即可。
但是也有一个问题,因为将焦点设置为文本框,用户可以看到闪烁的光标。