2015-12-17 6 views
0

У меня есть Userform I, построенный в Excel, который имеет примерно десять вкладок, используя настройку MultiPage. Проблема в том, что у меня заканчивается свободное пространство для дополнительных вкладок, и мне бы очень хотелось заменить вкладки более удобным навигационным меню или панелью инструментов. Я просмотрел Microsoft ToolBar Control, который близок к тому, что я ищу, но я не могу изменить высоту, и в раскрывающемся списке должна быть указана стрелка и текст, что не является интуитивным на мой взгляд ,Userform MultiPage Navigation

Итак, мой вопрос: знакомы ли вы с лучшей настройкой многостраничной навигации, возможно, используя форму ActiveX?

ответ

1

Я бы рекомендовал разделить вашу форму пользователя на отдельные формы или детские формы на основе категории. У вас может быть одна форма запуска другого, если они оба являются моделью, и оба могут одновременно отображаться на экране. Таким образом, вы можете работать с обоими последовательно.

Чтобы запустить форму как безрежимные, когда вы Form1.Show изменить его на Form1.Show vbModeless

+0

Да, это отличная мысль, о которой я думал. Я просто не готов взять на себя обязательства по ее сегментированию, но все же LOL. Я пытался провести исследование за последние полчаса, пытаясь найти надежное решение для навигации и ничего не найти. Я попытался возиться с реальной лентой в Excel, но на самом деле это неважно. –

+0

Итак, вот интересная идея. Я закончил использование FlexGrid и заполнил его через мою базу данных и изменил цвет фона, чтобы он соответствовал фону Userform. Теперь он чувствует себя знакомым с тем, как я планирую веб-сайт. –

0

То, что я в конечном итоге делаю делал Listbox со всеми моими разными страницами, что является помимо моих многостраничного затем поместил этот ListBox на левом правая часть моей UserForm затем использовал этот код

Заполняем ListBox

i = 0 
    With Main_Window.form_navigation_list 
      .AddItem "Domestic" 
       .List(i, 0) = "Page 1" 
       .List(i, 1) = 0 
     i = i + 1 
      .AddItem 
       .List(i, 0) = "Page 2" 
       .List(i, 1) = 1 
     i = i + 1 
End With 

Тогда у меня есть это для по щелчку

Private Sub form_navigation_list_Click() 
    Dim i As Integer 
    Dim SelectedRow As Integer 

     For SelectedRow = 0 To Main_Window.form_navigation_list.ListCount - 1 
      If Main_Window.form_navigation_list.Selected(SelectedRow) Then 
       nav_page = Main_Window.form_navigation_list.List(SelectedRow, 1) 
       With Main_Window 
        .MultiPage1.Value = nav_page 
        .Show 
       End With 
      End If 
     Next 

End Sub 

Я начал с использования flexgrid, но продолжал получать проблемы с утечкой памяти, и программа сработала, поэтому я поменялся на список и теперь отлично работает. Теперь я могу настроить этот список, чтобы немного походить на навигацию, которую я хочу.