Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648

Позиционирование контекстного меню NotifyIcon

14.01.2016, 00:03. Показов 1337. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При клике по NotifyIcon появляется контекстное меню левый низ которого находится в точке, где располагался на этот момент курсор мыши. Щёлкнул чуть ниже и меню перекроет весь Systray. Причём меню развёрнуто влево от курсора.
Можно ли развернуть меню в нужную мне сторону, например вправо и нижнюю позицию по вертикали приподнять до верха панели задач? Например так как на этом изображении:
Изображения
 
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2016, 00:03
Ответы с готовыми решениями:

Создать контекстное меню для NotifyIcon
Доброе время пробую написать контекстное меню для иконки в трее через функцию NotifyIcon.ContextMenu Для понимания его работы...

Как привязать контекстное меню из SandBar к NotifyIcon?
Как привязать контекстное меню из SandBar к NotifyIcon. К форме, кнопкам и т.д. получается, а к NotifyIcon никак привязать не могу.

Добавление обработчика события контекстного меню
Как добавить обработчик события (Click) создаваемому без использования дизайнера элементу контекстного меню? Public Class Form1 ...

7
 Аватар для Step_UA
1591 / 664 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
14.01.2016, 11:46
Лучший ответ Сообщение было отмечено jkrnd как решение

Решение

VB.NET
1
2
3
4
    Private Sub ContextMenu1_Opened(ByVal sender As Object, ByVal e As System.EventArgs) Handles ContextMenu1.Opened ' Открытие контекстного меню
        ContextMenu1.Left = MousePosition.X
        ContextMenu1.Top = Screen.PrimaryScreen.WorkingArea.Height - ContextMenu1.Height
    End Sub
3
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
14.01.2016, 12:01  [ТС]
Спасибо. То что я хотел. Коротко и ясно. Всё работает.
По оси Y решение очень удачное.
И всё же, наверняка существует какая-то API или NET, функция которая разворачивает выпадающее меню влево или вправо от места клика. Или я ошибаюсь?
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
14.01.2016, 12:13
Лучший ответ Сообщение было отмечено jkrnd как решение

Решение

Влево чтобы, замените вторую строку кода на:
VB.NET
1
ContextMenu1.Left = MousePosition.X - ContextMenu1.Width
Добавлено через 2 минуты
А насчет API -таких нет, насколько мне известно.
1
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
14.01.2016, 12:19  [ТС]
Сработало!!! Но почему? MousePosition.X - абсолютная координата экрана. ContextMenu1.Width всегда разная. Как можно было до этого догадаться?
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
14.01.2016, 13:06
Лучший ответ Сообщение было отмечено jkrnd как решение

Решение

jkrnd, ЭТО МАГИЯ

Добавлено через 3 минуты
На самом деле это числовые значения, и тут обычная математика помогает разобраться с задачей.
1
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
09.03.2016, 10:13  [ТС]
Step_UA, не подскажите как сместить позицию по X
VB.NET
1
ContextMenu1.Left = MousePosition.X
к середине значка NotifyIcon не зависимо от того, щёлкнули мы по нему правее или левее середины?
0
 Аватар для Step_UA
1591 / 664 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
09.03.2016, 10:56
Решения не знаю (
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.03.2016, 10:56
Помогаю со студенческими работами здесь

Получить событие строки контекстного меню
Всем знатокам доброго времени суток! Динамически создаю контекстное меню. Заранее не знаю какие будут строки, например такие Пупик ...

Изменение текста подпункта контекстного меню
Доброго времени суток, уважаемые форумчане! Столкнулся с необходимостью программного изменения текста подпункта контекстного меню (одно...

Реализация меню контекстного поиска в WEB-приложении.
В windows приложениях легко реализовать меню контекстного поиска. Т.е. пользователь жмет клавишу "Б" в textbox, в listbox...

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

Уменьшение ширины пунктов контекстного меню (ToolStripMenuItem)
всем приветы. Добавлено через 11 минут всем приветы. текст пунктов и подпунктов контекстного меню весьма длинный и раскрытое меню...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru