Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
19 / 19 / 0
Регистрация: 05.02.2015
Сообщений: 175

Контекстное меню в ListBox

17.09.2015, 16:31. Показов 3092. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый времени суток.
Имеется заполненный ListBox. Также есть ContextMenuStrip.
Необходимо, чтобы ContextMenuStrip открывался, только при выборе (нажатии мышкой) элемента ListBox и только в границах ListBox.
Как это реализовать?

Добавлено через 9 минут
P.S. В свойствах ListBox в ContextMenu добавлен ContextMenuStrip.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.09.2015, 16:31
Ответы с готовыми решениями:

Закрыть контекстное меню
Добавить на форму контекстное меню cmb. На меню есть текстовое поле и кнопка. когда ввожу в поле значение и нажимаю на кнопку, то из ячейки...

Контекстное меню в DataGridView
Всем привет! Подскажите, как создать контекстное меню по правой кнопке мыши, которая будет доступно только для ячеек в 3 столбце...

Контекстное меню в datagridview
Как сделать так что бы контекстное меню по правой кнопки мыши было только доступно в пустой области datagridview? на скриншоте область...

7
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
17.09.2015, 17:13
Для выбора элементов ПКМ
VB.NET
1
2
3
4
5
    Private Sub ListBox1_MouseDown(ByVal sender As ListBox, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown
        If e.Button = Windows.Forms.MouseButtons.Right Then
            sender.SelectedIndex = sender.IndexFromPoint(e.Location)
        End If
    End Sub
А в контекстном меню уже обрабатываете
VB.NET
1
ListBox1.SelectedItem
1
19 / 19 / 0
Регистрация: 05.02.2015
Сообщений: 175
17.09.2015, 17:40  [ТС]
Памирыч, пардон немного не правильно выразился. К примеру в ListBox1 такой список:
test1
test2
test3

И уже после выбора, допустим test2, появляется контекстное меню.

Здесь мы выключаем видимость контекстного меню
VB.NET
1
2
3
       Public Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TSMITransfer.Visible = False
    End Sub
А здесь мы его включаем

VB.NET
1
2
3
4
5
   Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        If Me.ListBox1.SelectedItem Is Nothing Then Exit Sub
        CreatePropertyList(Me.ListBox1.SelectedItem)
        TSMITransfer.Visible = True
    End Sub
И вот как раз после этого, в любом месте формы при нажатии ПКМ, отображается контекстное меню. Мне же необходимо чтобы контекстное меню работало только в Listbox1
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
17.09.2015, 17:50
Цитата Сообщение от Devils Посмотреть сообщение
немного не правильно выразился
Да я и после объяснений мало что понял.
Обычно меню привязано к конкретному элементу, оно не может, да и не должно, отображаться где попало на форме.

Из кодов я лишь понял, что затевается какая-то жесть.
Я, скорее всего, ошибаюсь.

Что Вы хотите получить в итоге, какова логика работы меню и списка?
1
19 / 19 / 0
Регистрация: 05.02.2015
Сообщений: 175
17.09.2015, 18:03  [ТС]
ЛКМ выбрал "элемент контейнера", а потом нажал ПКМ уже в "Списке контейнеров", а должно срабатывать только в "элемент контейнера"
Миниатюры
Контекстное меню в ListBox  
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
17.09.2015, 18:13
Лучший ответ Сообщение было отмечено Devils как решение

Решение

У Вас не подписаны элементы.

Предположительно следующее:
Элемент контейнера это ListBox2
Контекстное меню "Переместить в Users" - это ContextMenuStrip2

В окне свойств это меню привязано к "Элементам контейнера"

Но тогда возникает вопрос - почему меню привязывается к верхнему списку, где три точки ("...")?

Перепроверьте свойства списков и временно закомментируйте весь код, который упоминает контекстное меню где бы то ни было
2
19 / 19 / 0
Регистрация: 05.02.2015
Сообщений: 175
18.09.2015, 08:00  [ТС]
Цитата Сообщение от Памирыч Посмотреть сообщение
Предположительно следующее:
Элемент контейнера это ListBox2
Контекстное меню "Переместить в Users" - это ContextMenuStrip2
В окне свойств это меню привязано к "Элементам контейнера"
Именно так. Извиняюсь, что не подписал. Торопился с работы домой свалить

Цитата Сообщение от Памирыч Посмотреть сообщение
Но тогда возникает вопрос - почему меню привязывается к верхнему списку, где три точки ("...")?
Оно "привязывается" к любому элементу, где нажмешь ПКМ. Будь то кнопка, будь то, ListBox, CheckBox, по всей форме.

Цитата Сообщение от Памирыч Посмотреть сообщение
Перепроверьте свойства списков и временно закомментируйте весь код, который упоминает контекстное меню где бы то ни было
Завтра попробую.

Добавлено через 13 часов 4 минуты
Памирыч, не знаю каким образом, но ContextMenuStrip2 было привязано еще и к MainForm. Спасибо за помощь.
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
20.09.2015, 06:55
Devils, а почему в этом случае поосто КНОПКУ не использоватт, если ваше ПЕРЕМЕСТИТЬ В USERS привязано почти ко всем эементам формы???? Мнню призвано быть для конкретного элемента мне кажется... так вы тока запутаете пользователя...
Сделайте кнопку. И при выборе контейнера делайте ее активной. Помоему так, с точки зрения логики, будет правилтней
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.09.2015, 06:55
Помогаю со студенческими работами здесь

Отключить контекстное меню Flash
Ищу возможность отключить контекстное меню в флешках от правой кнопки мышки. По всей видимости, нужно перехватить событие. Нашел на С,...

Контекстное меню по загаловку формы
Как вызвать свое контекстное меню(ContextMenuStrip1) при клике ПКМ на заголовок формы?

Контекстное меню открывается не в той позиции
Всем привет.Подскажите в чем проблема, есть кусочек кода для контекстного меню Private Sub DataGridView3_CellMouseDown(ByVal sender...

Свое контекстное меню для TextBox
Много написано в сети о контекстном меню для текстбокса для VB-6 а вот для VB.net ничего не нашел. Нашел, как убрать родимое...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru