Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/55: Рейтинг темы: голосов - 55, средняя оценка - 4.75
 Аватар для FreeWay
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574

contextMenuStrip появление по левому клику и позиционирование

01.02.2010, 21:36. Показов 10897. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!!!!
Народ подскажите как вызывать contextMenuStrip по левому клику, а не как по умолчанию по правому. У меня есть кнопка, и по ее нажатию должно вылазить контекстное меню.
Возможно ли чтоб меню отцентрировалось по центру кнопки, а то оно снизу справо, некрасиво как то.

Или все это дело проще реализовать с помощью панели???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.02.2010, 21:36
Ответы с готовыми решениями:

NotifyIcon, ContextMenuStrip меню по левому клику мыши не исчезает
Есть значок в трее (NotifyIcon), по клику на него должно появляться меню (ContextMenuStrip), я к событию notifyIcon.MouseClick (так же...

Появление и исчезновение формы по клику на иконке
Доброго времени суток. У меня вопрос, скорее всего простой, но тем не менее. Приложение не работает на 100% корректно. Итак, исходные...

Событие по клику contextMenuStrip
Заполняю контекстное меню динамически, из содержимого listbox. contextMenuStrip1.Items.Add("menu1"); ...

3
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
01.02.2010, 22:24
Чтобы отобразить попробуй так
C#
1
2
3
4
 private void button1_Click(object sender, EventArgs e)
        {
            contextMenuStrip1.Show();
        }
позиция - попробуй метод
C#
1
 button1.ContextMenu.Show(button1, new Point(30, 10));
Но мне, кажется, это скользкий путь...Я привык к контекстному меню по правому клику...И что-то не хочется ничего менять....Я бы такую прогу отложил....
0
0 / 0 / 1
Регистрация: 13.09.2009
Сообщений: 14
01.02.2010, 23:35
Цитата Сообщение от wwowa Посмотреть сообщение
Но мне, кажется, это скользкий путь...Я привык к контекстному меню по правому клику...И что-то не хочется ничего менять....Я бы такую прогу отложил....
Э-э-э, нет, мне думается Вы не правы, что касается контекстного меню по правому клику. Занимаюсь сейчас примерно аналогичной проблемой - имеется компонент, производный от UserControl, на который кинута панель (Panel и Panel.Dock = DockStyle.Top), а на панель - три кнопца (Button). Ну, и производные компонеты от этого базового компонента - один с PropertyGrid в клиентской области другой -с TreeView и ToolStripContainer, третий - с PictureBox - для 2D и 3D-графики. Смысл - обеспечить функциональность Solution Explorer'а, Property Manager'а и т.п. - тех, что в студии то Dockable, то Tabbed Document, то Floating...

Так вот, контекстное меню в случае нажатия на кнопец, показанный на рисунке вываливается как по правому, так и по левому клику (в всех остальных случаях клика по панели заголовка - только по правому). Правый клик реализован по умолчанию, так что в запрограммировать поведение панели загловка и всего компонента нет никаких проблем.

Проблемы начинаются тогда когда программируешь левый клик на кнопце с треугольничком. Когда сразу же кликаешь левой клавишей на этот кнопец, то при деактивации компонента, всё хорошо, отбражется как надо

А вот когда сначала даешь фокус компоненту, потом кликаешь левой клавишей на кнопец с треугольничком и наконец деактивируешь весь компонент, то он отображается, как будто он активный, кроме кнопца с треугольничком, который свой треугольничек из белого(активного), сделал чёрным(неактивным), при этом свой фон оставил активным.

Пока не лечится ничем - ни рефрешем(инвалидэйтом) всего компонента, ни ни рефрешем(инвалидэйтом) дочерних компонентов по отдельности, ни переопределением OnPaint'а, OnLostFocus'а и прочей шняги. Правда если постоянно рефрешить весь компонент, отображение идет нормально, но это такой моветон и мещанство, что было испробовано в качестве спортивного инттереса - а что будет, если?...
0
 Аватар для ForestG
39 / 39 / 9
Регистрация: 21.11.2009
Сообщений: 201
15.02.2010, 19:20
В пропертейс где стоит ContextMenustrip поставь вместо none ContextMenustrip
Создай событие по кнопке MouseDown.
И там с помощью функции "e"
C#
1
2
3
4
5
6
7
8
9
10
//Короче вот так выглядит:)
        private void button3_MouseDown_1(object sender, MouseEventArgs e)
        {
 
         if (e.Button == System.Windows.Forms.MouseButtons.Left)
 
            {
                ContextMenustrip.Show();
            }
        }//Вот только меню оказывается в левом верхнем углу, я думаю ты доработаешь:)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2010, 19:20
Помогаю со студенческими работами здесь

Позиционирование пунктов списка по левому и правому краю
Доброго времени суток! Ребят, помогите с таким вопросом: Имеется нумерованный список, к каждому из li приписываю class left или...

Появление элемента по клику на кнопку и скрытие элемента по клику на любое место body
Задача стоит такая. Нужно сделать так, чтобы по клику на button class="helper" наш div id = "helper_list" появлялся на экране(по...

Появление блока по клику
$(document).ready(function() { // Ждём загрузки страницы $(".cart__open").click(function() { $(".cart").css('display',...

Появление блоков по клику
<div class="screen"> <img class="screen1" src="pictures/screen1.png"> <img class="screen2"...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
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, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru