Как скрыть кнопки управления в VBA - PullRequest
8 голосов
/ 29 января 2012

Есть здесь кто-нибудь, кто еще программирует 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 ]

7 голосов
/ 29 января 2012

Измените фокус на один из видимых элементов управления, прежде чем скрыть текущий

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 голос
/ 29 января 2012

Я бы подумал, что ошибка была достаточно явной. Переместите фокус на какой-то элемент управления, который вы не пытаетесь скрыть, прежде чем запускать свой код. Также рассмотрим Me: http://msdn.microsoft.com/en-us/library/aa223099(v=office.11).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...