Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/22: Рейтинг темы: голосов - 22, средняя оценка - 4.50
4 / 4 / 0
Регистрация: 15.10.2011
Сообщений: 39

привязка контекстного меню?

23.10.2011, 13:22. Показов 4528. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Как привязать контекстное меню к месту, где щелкнули кнопкой?
я использую такой код
C++
1
contextMenuStrip1->Show(MousePosition, ToolStripDropDownDirection->AboveRight);
а выдается ошибка
error C2275: System::Windows::Forms::ToolStripDropDow nDirection: недопустимое использование этого типа в качестве выражения
как быть? подскажите, пожалуйста!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2011, 13:22
Ответы с готовыми решениями:

Закрытие основного меню, при открытии контекстного
Добрый день! Есть основное меню (MenuStrip), которое частично наполняется динамически (toolStripMenuItem). Необходимо подключить...

Открытие контекстного меню
у меня есть контекстное меню void CameraView::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) { QMenu menu; ...

Настройка контекстного меню
Доброго времени суток. В целях оптимизации работы я решил настроить контекстное меню в Windows. Добавлять в него элементы для выполнения...

8
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
23.10.2011, 13:29
ToolStripDropDownDirection — это тип-перечисление, для того, чтобы обратиться к его членам, нужно использовать оператор :: . Попробуйте так:

C++
1
contextMenuStrip1->Show(MousePosition, ToolStripDropDownDirection::AboveRight);
1
4 / 4 / 0
Регистрация: 15.10.2011
Сообщений: 39
23.10.2011, 14:12  [ТС]
Спасибо! Работает

Добавлено через 17 минут
А как определить что на DataGridView нажата правая кнопка мыши?
C++
1
if (e->Button == MouseButtons->Right)
тоже выдает ошибку. Пример из MSDN, где у них
C++
1
if ( e->Button == ::MouseButtons::Left )
тоже не работает
выдаются ошибки на стадии компиляции
error C3083: MouseButtons: символ слева от "::" должен представлять тип
error C2039: Left: не является членом "`global namespace'"
error C3063: оператор "==": все операнды должны иметь одинаковый тип перечисления
0
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
23.10.2011, 14:52
то же самое, MouseButtons — это перечисление, обращаться к его членам через оператор :: . Попробуйте так:
C++
1
if (e->Button == MouseButtons::Right)
0
4 / 4 / 0
Регистрация: 15.10.2011
Сообщений: 39
23.10.2011, 15:35  [ТС]
Да в том то и дело, то ли лыжи не едут
выдаются ошибки
error C2039: Right: не является членом "System::Windows::Forms::Control::MouseB uttons"
error C3063: оператор "==": все операнды должны иметь одинаковый тип перечисления
А можете порекомендовать хорошую книжку(ги) по CLI? и по элементам интерфейса?
0
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
23.10.2011, 15:44
Цитата Сообщение от Федор-Липецк Посмотреть сообщение
А можете порекомендовать хорошую книжку(ги) по CLI? и по элементам интерфейса?
Посмотрите в этой теме: Учебники.

Цитата Сообщение от Федор-Липецк Посмотреть сообщение
выдаются ошибки
error C2039: Right: не является членом "System::Windows::Forms::Control::MouseB uttons"
error C3063: оператор "==": все операнды должны иметь одинаковый тип перечисления
попробуйте в начале кода записать строчку
C++
1
#using <System.Windows.Forms.dll>
и ещё явно записать все пространства имён для MouseButtons примерно так:
C++
1
if (e->Button == System::Windows::Forms::MouseButtons::Right)
1
4 / 4 / 0
Регистрация: 15.10.2011
Сообщений: 39
23.10.2011, 16:01  [ТС]
попробуйте в начале кода записать строчку
C++
1
#using <System.Windows.Forms.dll>
и ещё явно записать все пространства имён для MouseButtons примерно так:
C++
1
if (e->Button == System::Windows::Forms::MouseButtons::Right)
Спасибо! Работает, даже без указания
C++
1
#using <System.Windows.Forms.dll>
жалко мне не хватает знаний, чтобы понять почему
0
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
23.10.2011, 16:10
Федор-Липецк, у любого Windows Forms контрола, например, у формы, есть одноимённое свойство MouseButtons, которое имеет тип System::Windows::Forms::MouseButtons и если явно не прописывать пространства имён, то компилятор видимо думает, что вы обращаетесь к свойству, а не к типу MouseButtons, а отсюда уже и неправильная семантика происходящих действий. Если знакомы с английским, рекомендую почитать статьи на вот этом ресурсе С++/CLI Tutorials, там обучающие материалы от самых основ языка до всяких Windows.Forms контролов есть.
1
4 / 4 / 0
Регистрация: 15.10.2011
Сообщений: 39
23.10.2011, 16:19  [ТС]
Спасибо! Буду изучать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.10.2011, 16:19
Помогаю со студенческими работами здесь

Создание контекстного меню
Подскажите как можно реализовать контекстное меню с боковым изображением. К примеру, как указано на рисунке во вложении.

Координаты контекстного меню
Здравствуйте! Подскажите, как узнать координаты, в которых открылось контекстное меню?

Загрузка из контекстного меню
Есть программа - аплоадер изображений, хочу добавить в контекстное меню кнопку типа &quot;Загрузить с помощью ...&quot;, добавлять в...

Действия контекстного меню
Существует RichEdit поле, к нему подлючён ContextMenuStrip, добавлены элементы вырезать, копировать, вставить, удалить, пожалуйста...

Создание контекстного меню
Приветствую. У меня есть виджет дерева и я хочу, чтобы при клике ПКМ по корневому узлу появлялось одно контекстное меню, а при клике...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru