| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > ContextMenuStrip |
| Автор: lioness 25.8.2006, 13:38 | ||
| Я дублирую из основного меню MenuStrip одну веточку в контекстное меню. После того, как пишу
это самое "View" из основного меню исчезает и начинает работать только в контекстном. Что-то типа, как стоит у меня в примере, "menu.Clone()" я в VS 2005 не нашла Как мне правильно задублировать менюшку: и на главное и на контекстное. На МДСН бестолковый пример какой-то на контестное меню |
| Автор: mr.DUDA 25.8.2006, 15:39 |
| Было и у меня такое, пришлось руками копировать меню поэлементно. |
| Автор: lioness 25.8.2006, 16:09 | ||||||||
Копировала... Компилятор не проходит вот эта строка
Какой стринг, если cms и menuImage - одного класса ... С menuImage значитьЦа никаких проблем, а с другим вдруг "Стринг" ! А если убрать строку и запустить, то вылетает на ошибку в foreach
Я неправильно копирую? |
| Автор: reloni 25.8.2006, 17:25 |
Неправильно Используй for вместо foreach, если нужно что-то модифицировать. |
| Автор: lioness 25.8.2006, 18:28 | ||||||
А, да и правда... Что-то припоминаю про foreach. Но я спИсывала вот тут с учебника:
Только у меня КлонаМеню что-то нет. Отменили наверное. А отчего тогда вот эту строку компилятор не жрёть:
У меня стоит двумя строками объявление
а он мне "Стриииииииииинг". |
| Автор: ivashkanet 28.8.2006, 08:56 |
| lioness, если уж даешь код, то давай весь нужный. Например что за объекты menuImage, ctxtMenuView, menuView? |
| Автор: lioness 28.8.2006, 11:06 | ||||||||||||||
Сделано незамысловатое "выпадающее" меню (по-новому, которое "StripMenu")
Открыть файл-фото, закрыть все, показать в натуральную величину или "тянуть" размер следом за формой. "Sub - меню", которые "StrechImage" и "Normal" стоят с "галочкой", т.е. один из двух режимов. Я уж не буду расписывать все events. Работает менюшка. Потом добавлен ContentxMenuStrip в положенных местах дизайнейра, чтобы продублировать веточку менюшки View в контект-меню:
Согласно книжке добавлен в конструктор Define для контекста
И вот сразу после этого дифайна веточка View в меню сверху стоит "голая". Она начинает работать только в контекстном меню. В книжке процедура предложена так:
Т.е. КЛОН Наверное, так было правильно в той версии. Здесь этот конструктор вообще через компилятор не проходит и подсказки ".Clone" нет. Я написАла так:
Компилятор лается, что под 'System.Windows.Forms.ToolStripItemCollection.Add(string)' аргумент-инвалид. Я ему предложила так:
Та же самая ошибка в компиляторе. А если поставить просто одну строку
то ветка их верхнего меню исчезает, как я уже сказала. Стоит одна "голая" View", а "Image" перемещается в контекст. Меню нормально работает, но только в новом контекстном месте. Как-то элементарно нужно склонировать, продублировать. В МДСН всё вообще по-другому в контекстном стоит. Может быть, можно мой DefineContextMenu парами строчек исправить? |
| Автор: VisualProgrammerNET 1.9.2006, 13:51 |
| Сразу вопрос (даже не просматривая код): Если компилятор чётко просит в параметрах функции menu.Add передать стринг, почему бы не дать ему этот стринг? Насколько я понимаю, этот метод просто добавит одну строку меню с заданным названием. А потом обработчики этой строки нужно будет программить отдельно. Можно хоть до посинения передавать вместо стринга другое меню, но компилятор тебе обмануть или переубедить не удастся. Сколько я ни пробовал - не вышло до сих пор |