Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 03.12.2011
Сообщений: 14

Как быть с меню в MDI?

14.07.2006, 12:07. Показов 2133. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я когда то тоже задавал этот вопрос.
Нужно делать так. Создаешь все менюшки для дочерних форм в главной MDI форме и делаешь их скрытыми. В событиях дочерних форм Activate/deact.. пишешь код чтобы соответствующая менюшка visible=true при активации формы и наоборот false при деактивации. Незабудь что функции вызываемые из главного меню в дочерних формах нужно сделать Public, иначе произойдет error.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.07.2006, 12:07
Ответы с готовыми решениями:

Отображение меню формы + меню MDI
Привет всем Как сделать так, чтобы при открытии формы отображалось и меню MDI формы, и ее сосбственное меню? Спасибо

Сканировать меню в MDI и помещать в TreeView
Подскажите как это делается? Задача - помещать пункты меню в TreeView дочерней формы. Собственно не знаю, где смотреть существующие...

Ошибка в MDI: 'No MDI Form available to load'
Проблема такая: есть несколько проектов ActiveX Control, в каждом из которых есть формы MDIChild. И есть главный проект с MDI-формой, в...

14
1 / 1 / 0
Регистрация: 03.12.2011
Сообщений: 14
14.07.2006, 12:13  [ТС]
NegotiateMenu=False не помогает, я проверял
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
15.07.2006, 03:02
... <EM>You can't negotiate menus between an MDIForm object and an object on the MDIForm</EM>...
Drugimi slovami, dochernie menu obyazani podavlyat' MDI menu i naoborot.
Palliative s psevdo dochernimi menu v MDI forme mozhet bit' ispol'zovan. No eto ne budut nastoyaschie dochernie menu.
VladConn
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
15.07.2006, 03:04
<EM> ...Незабудь что функции вызываемые из главного меню в дочерних формах нужно сделать Public, иначе произойдет error...</EM>
Vot-vot, i letit vsya inkapsulyaciya, i nakrivaetsya ona mednim tazom.
VladConn
0
1 / 1 / 0
Регистрация: 03.12.2011
Сообщений: 14
15.07.2006, 11:14  [ТС]
[quote]VladConn (14.07.2006)
<EM> ...Незабудь что функции вызываемые из главного меню в дочерних формах нужно сделать Public, иначе произойдет error...</EM>
Vot-vot, i letit vsya inkapsulyaciya, i nakrivaetsya ona mednim tazom.
А что, у тебя есть более красивое решение?
0
1 / 1 / 0
Регистрация: 25.05.2008
Сообщений: 232
31.03.2011, 17:07
Подскажите как быть с сабжем. Например, есть форма МДИ. У нее есть дите, у которого есть меню. Как сделать так, чтобы меню ребенка не устанавливалось вместо меню MDI формы. Вообще непонятен смысл этой задумки...
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
31.03.2011, 17:35
эти вопросы к мелкософту - это они так придумали. Читай популярные книжки по разработке на VB. Там подробненько описаны разработки программ с интерфейсами MDI и SDI и их отличия.
0
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
31.03.2011, 17:54
Смысл зaдумки Вaм уже пoсoветoвaли где выяснить...
A вoт кaк сделaть - этo зaвисит oт тoгo чтo Вы хoтите сделaть. Я тaк пoнял чтo Вы хoтите иметь oбa меню oрткрытыми, тaк?
Тoгдa сoздaйте oднo меню - нa MDI. В мoмент aктивaции/деaктвaции дoчерней фoрмы меняйте Visible тoй чaсти меню oтнoсится к дoчерней фoрме.
0
1 / 1 / 0
Регистрация: 25.05.2008
Сообщений: 232
31.03.2011, 18:02
Так как это это обойти?
Создавать меню динамически через АПИ и сабклассить?
Просто напрягает когда надо сделать на дочерней форме попап меню то приходиться делать кучу меню на МДИ форме и скрывать их, а потом показывать и тд. Хотелось бы узнать как народ с этим бореться?
0
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
31.03.2011, 18:23
Нaвернoе мoжнo сoздaвaть динaмически и т.д. и т.п....
нo, с другoй стoрoны - Вы же всё рaвнo сoздaёте этo меню нa дoчерней фoрме через Menu Editor. Пoчему не сoздaть егo срaзу нa MDI фoрме?
0
Comanche
31.03.2011, 21:29
По-моему - насколько помню MSDN - свойство формы NegotiateMenus относится как раз к теме вопроса...
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
31.03.2011, 21:40
2 Comanche:
Если пaмять не изменяет, тo NegotiateMenu не рaбoтaет с MDIChild.
0
Comanche
31.03.2011, 21:48
Вот кусок из МСДН:
======================================== ============================
Using the NegotiateMenus property, you determine if the menu bar of a form will share (or negotiate) space with the menus of an active object on the form. If you don't want to include the menus of the active object on the menu bar of your form, set NegotiateMenus to False.

You can't negotiate menus between an MDIForm object and an object on the MDIForm.

If NegotiateMenus is set to True, the form must have a menu bar defined, even if the menu bar isn't visible. If the MDIChild property of the form is set to True, the menus of the active object are displayed on the menu bar of the MDI parent window (MDIForm object).

When NegotiateMenus is set to True, you can use the NegotiatePosition property of individual Menu controls to determine the menus that your form displays along with the menus of the active object.
======================================== ============================

Вроде - согласно 3-ему абзацу - установка у ребёнка свойства в FALSE должна решить обсуждаемую проблему.
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
31.03.2011, 21:52
Сейчaс пoпрoбoвaть не мoгу, нo пoмню чтo не рaбoтaлo...
0
1 / 1 / 0
Регистрация: 25.05.2008
Сообщений: 232
03.04.2011, 08:49
2 Comanche:
Mike_R прав, не работает. Порой мелкомягкие оригинальны.
PS. Спасибо за продвинутый листвью!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.04.2011, 08:49
Помогаю со студенческими работами здесь

MDI-форма. Как лучше?
1.Есть MDI в ней через меню New открываются новые окошки-формы, но запускается она пустая(только одна MDI) 2.есть в меню некоторые...

Как избавится от меню пуск, или как узнать когда это меню открыли?
Как избавится от меню пуск, или как узнать когда это меню открыли???

MDI не хочет быть Children
Вот вопрос возник. Пишу программу. Сначала были просто отдельные формы, но захотелось сделать MDI. Даны две формы: frmLoad и frmNewCard. В...

Как настроить соответствие размеров MDI-контейнера и MDI-формы?
Здравствуйте! Я для вкладки &quot;TbpDaSubekt&quot; сделал MDI-форму &quot;FrmTipHran&quot;: FrmTipHran.TopLevel = False FrmTipHran.Parent =...

(МЕНЮ В ШАБЛОНЕ) Как быть?
Доброго Вам времени суток Уважаемые программисты. Я заранее прошу прощения, за глупый вопрос, просто облазил Весь интернет но в итоге...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru