Как скрыть управление кнопкой в 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 ответов
измените фокус на один из видимых элементов управления, прежде чем скрывать текущий
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, вы должны попробовать
Я бы подумал, что ошибка была достаточно явной. Перед запуском кода переместите фокус на элемент управления, который вы не пытаетесь скрыть. Кроме того, рассмотрим Me
: http://msdn.microsoft.com/en-us/library/aa223099 (v=офис.11).aspx