Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 05.01.2011
Сообщений: 48

Отразить в MessageBox название поля контекстного меню

20.05.2012, 11:44. Показов 1193. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем драсте
У меня такой вопрос, знающему человеку нужно 10 секунд, чтоб ответить.
Есть форма, контекстное меню из 4 пунктов. При нажатии на каждый из них должно вылазить новое окошко с названием этого пункта.
Что нужно написать в скобках MessageBox.Show() чтобы там появилось название пункта меню?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public void abc(object sender, EventArgs e)
        {
            MessageBox.Show(this.ContextMenu.MenuItems.);
        }
MenuItem[] menu_items = new MenuItem[4];
            menu_items[0] = new MenuItem("first");
            menu_items[1] = new MenuItem("second");
            menu_items[2] = new MenuItem("third");
            menu_items[3] = new MenuItem("fourth");
 
            menu_items[0].Click += new EventHandler(abc);
            menu_items[1].Click += new EventHandler(abc);
            menu_items[2].Click += new EventHandler(abc);
            menu_items[3].Click += new EventHandler(abc);
 
            this.ContextMenu = new ContextMenu(menu_items);
Помогите пожалуйста, срочно надо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.05.2012, 11:44
Ответы с готовыми решениями:

привязка контекстного меню?
Здравствуйте! Как привязать контекстное меню к месту, где щелкнули кнопкой? я использую такой код ...

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

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

4
29 / 29 / 8
Регистрация: 13.12.2009
Сообщений: 70
20.05.2012, 11:57
Может дурацкий способ, но первое что пришло в голову, если события разделить:
C#
1
2
3
4
         menu_items[0].Click += new EventHandler(menu_items1_click);
        menu_items[1].Click += new EventHandler(menu_items2_click);
        menu_items[2].Click += new EventHandler(menu_items3_click);
        menu_items[3].Click += new EventHandler(menu_items4_click);
События клик:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  private void menu_items1_click(object sender, System.EventArgs e)
        {
            MessageBox.Show(sender.ToString().Substring(53));
        }
        private void menu_items2_click(object sender, System.EventArgs e)
        {
            MessageBox.Show(sender.ToString().Substring(53));
        }
        private void menu_items3_click(object sender, System.EventArgs e)
        {
            MessageBox.Show(sender.ToString().Substring(53));
        }
        private void menu_items4_click(object sender, System.EventArgs e)
        {
            MessageBox.Show(sender.ToString().Substring(53));
        }
Или просто добавь:
C#
1
2
3
4
   private void abc(object sender, System.EventArgs e)
        {
            MessageBox.Show(sender.ToString().Substring(53));
        }
Еще "или" улучшенное:
C#
1
2
3
4
      private void abc(object sender, System.EventArgs e)
        {
            MessageBox.Show(((MenuItem)sender).Text);
        }
1
2 / 2 / 0
Регистрация: 05.01.2011
Сообщений: 48
20.05.2012, 12:11  [ТС]
Просто добавил sender.ToString().Substring(53), но теперь вопрос, а как это работает-то вообще? о_О
И почему именно 53?

Добавлено через 4 минуты
Цитата Сообщение от Qulis Посмотреть сообщение
Еще "или" улучшенное:Код C#
1
2
3
4 private void abc(object sender, System.EventArgs e)
{
MessageBox.Show(((MenuItem)sender).Text) ;
}
Так, это уже более понятно. Наверное остановлюсь на этом варианте. Но тоже не совсем понимаю как это работает. Не помню, чтоб мы хоть раз писали сначала скобки, а потом уже то, к чему они относятся. Это я про ((MenuItem)sender).
0
29 / 29 / 8
Регистрация: 13.12.2009
Сообщений: 70
20.05.2012, 12:12
Boost, sender определяет объект, который издает событие, по нему мы можем определить все свойства, события доступные компоненту от которого он пришел. Как то так, теоретик из меня никакой.
Substring(53) - метод извлекает из строки подстроку, в данном случае начиная с 53 символа, хочешь убери substring и посмотри что будет.

И вообще используй улучшенный вариант Успехов.
1
2 / 2 / 0
Регистрация: 05.01.2011
Сообщений: 48
20.05.2012, 12:17  [ТС]
Нууу, да, сабстринг я использовать не буду, ну его в пень, оставлю второй вариант, вроде даже понял как он пашет.
Спасибо большое!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.05.2012, 12:17
Помогаю со студенческими работами здесь

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

Изменение контекстного меню
Доброго вечера! Есть документы во вьюве. При щелчке правой кнопкой мыши по backend-документу открываетя контекстное меню с кучей функций,...

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru