powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пункты меню
9 сообщений из 9, страница 1 из 1
Пункты меню
    #33865598
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создала через menu editor пункты меню.
нужно из приложения все эти пункты меню забить в combo.
желательно без api.
...
Рейтинг: 0 / 0
Пункты меню
    #33865777
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эти менюхи убивают... Вот...
А с вашей бедой - можно перебирать коллекцию Controls и проверять тип, но пункты менюхи разные бывают... если это в свою очередь тоже коллекция, то и её обойти тоже нать... Эксперементируйте :)
...
Рейтинг: 0 / 0
Пункты меню
    #33872047
Armenj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как и подсказал buser:
Пунктyы меню именуй
mnuOpen, mnuNew ...

Код: plaintext
1.
2.
3.
4.
5.
6.
    Dim ctl
    For Each ctl In Controls
        If InStr( 1 , ctl.Name, "mnu") Then
            cbo.AddItem ctl.Caption
        End If
    Next
...
Рейтинг: 0 / 0
Пункты меню
    #33872680
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если они у меня названы как попало, только сейчас возникла необходимость их перечислять. хотелось бы именно просто в цикле пробежаться по меню.
ну можно api, по другому я так понимаю, не получится.
...
Рейтинг: 0 / 0
Пункты меню
    #33872769
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без API можно так: перебрать все контролы, как рекомендовал Armenj, и проверить на специфическое свойство, которое есть только у меню.
Например, Checked или WindowList
Если это свойство чему-то равно, то добавить в комбо, если ошибка, то продолжить перечисление...
Так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
On Error GoTo  1 
    For Each ctl In Controls
        If ctl.WindowList Or Not ctl.WindowList Then
            combo.AddItem ctl.Caption
        End If
 2    Next

Exit Sub
 1  Resume  2 
...
Рейтинг: 0 / 0
Пункты меню
    #33872783
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или просто через TypeOf.

Код: plaintext
1.
2.
3.
4.
    For Each ctl In Me.Controls
        If TypeOf ctl Is Menu Then
            combo.AddItem ctl.Caption
        End If
    Next
...
Рейтинг: 0 / 0
Пункты меню
    #33875354
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Letter_D, гениально и просто. огромное спасибо.
...
Рейтинг: 0 / 0
Пункты меню
    #33875359
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще вопрос. а как мне исключить из этого списка пункты первого уровня, ну вот пример из IE (файл, правка, вид). т.е. выводить в список только вторые и дальше уровни меню.
...
Рейтинг: 0 / 0
Пункты меню
    #33875871
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так кажется.
Код: plaintext
1.
2.
3.
Dim mnu as Menu
For each mnu in MyMenuXXX
  Combo1.AddItem mnu.Caption
Next
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пункты меню
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]