С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350

PictureBox обработка MouseClick

07.06.2019, 16:47. Показов 1289. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу обработать клики мышью в PictureBox, встроенные функции в System.Windows.Forms.MouseEventArgs работают но по отдельности, либо один клик либо двойной...

VB.NET
1
2
3
4
5
Private Sub PictureBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
 
    Private Sub PictureBox1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDoubleClick
 
    Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
Посмотрел на сайте Microsoft пример обработки одинарных и двойных кликов, там реализовано через таймер, расчет разницы между нажатиями кнопок мыши...

Почему MouseClick и MouseDoubleClick не работают вместе?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2019, 16:47
Ответы с готовыми решениями:

В чём отличие событий ListView Click от MouseClick
Чем отличается событие Private Sub ListView1_Click от события Private Sub ListView1_MouseClick При клике мышкой - они оба...

События мыши rightclick и mouseClick обрабатываются вместе
на форме висит contextmenustrip и на иконку в трее повешены еще mouseClick mouseDoubleClick возникает неприятная бага: ...

Как перехватить событие Ctrl+MouseClick в DataGridView?
Добрый день! Планируется выделять строки путем клика на ячейки/строки с зажатым Ctrl, как это сделать? ненагуглил. :(

17
2282 / 1598 / 400
Регистрация: 26.06.2017
Сообщений: 4,726
Записей в блоге: 1
07.06.2019, 18:28
Цитата Сообщение от mostApi Посмотреть сообщение
Почему MouseClick и MouseDoubleClick не работают вместе?
а почему они должны работать вместе по вашему?
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
08.06.2019, 00:45  [ТС]
Uswer, а почему бы и нет?
Логически рассуждая есть две функции MouseClick и MouseDoubleClick, почему каждая из них уже не просчитывает как нужно обработку кликов? Почему при наличии этих функций нужно самому отдельно писать обработчик?

Или я что-то не так понимаю?! Есть простая готовая обработка в их реализации или еще как?
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
08.06.2019, 05:20
mostApi, Для каждого события есть СВОЙ ОТДЕЛЬНЫЙ ОБРАБОТЧИК. Именно потому, что это разные события и срабатывают они в разные моменты...
0
85 / 75 / 15
Регистрация: 18.01.2014
Сообщений: 359
08.06.2019, 09:07
Вообще ни чего не понятно. Что ТС хотел спросить?....
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
08.06.2019, 10:38  [ТС]
Yury Komar, _Radik_, я вот что имею ввиду...
Есть две штатные функции (простая проверка):
VB.NET
1
2
3
4
5
6
7
Private Sub PictureBox1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDoubleClick
        MsgBox("Left:2:" & CStr(e.X) + ":" + CStr(e.Y))
    End Sub
 
    Private Sub PictureBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
        MsgBox("Left:1:" & CStr(e.X) + ":" + CStr(e.Y))
    End Sub
Работает только MouseClick, MouseDoubleClick обрабатывается только когда она одна, т.е. отсутствует MouseClick
Как быть?
1
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
08.06.2019, 11:03
mostApi, тоже не совсем понимаю, для чего это нужно. Так не подойдёт?
VB.NET
1
2
3
Private Sub Clicks(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDoubleClick, PictureBox1.MouseClick
     MsgBox("Left:2:" & CStr(e.X) + ":" + CStr(e.Y))
End Sub
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
08.06.2019, 11:08  [ТС]
MrCrown, где в Вашей копии моего когда обработка 2-го клика мышью? Здесь только один клик в работе...
Мне нужно получать событие одного клика и двойного в одной программе, как это сделать?
0
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
08.06.2019, 11:22
Цитата Сообщение от mostApi Посмотреть сообщение
где в Вашей копии моего когда обработка 2-го клика мышью?
mostApi, здесь
Цитата Сообщение от MrCrown Посмотреть сообщение
Handles PictureBox1.MouseDoubleClick, PictureBox1.MouseClick
Добавлено через 10 минут
Я имел ввиду это
VB.NET
1
2
3
4
5
6
7
Private Sub Clicks(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox1.MouseDoubleClick, PictureBox1.MouseClick
        If e.Clicks = 2 Then
            Me.Text = "Событие MouseDoubleClick"
        Else
            Me.Text = "Событие MouseClick"
        End If
    End Sub
1
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
08.06.2019, 15:12  [ТС]
MrCrown, спасибо большое за ответ, сам не подумал так попробовать, но у меня и в таком варианте не работает!
Вы сами проверяли работоспособность кода?

Даже с Вашим вариантом отрабатывает один клик!
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
08.06.2019, 15:25
mostApi, что значит отрабатывает один клик?
тоесть условие при двух кликах не срабатывает? а с одним срабатывает?
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
08.06.2019, 15:28  [ТС]
Yury Komar, верно, я об этом говорю с самого первого моего сообщения...
Проверьте у себя работоспособность кода...
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
08.06.2019, 15:42
mostApi, я не у компа, к сожалению.
0
85 / 75 / 15
Регистрация: 18.01.2014
Сообщений: 359
08.06.2019, 17:19
Цитата Сообщение от mostApi Посмотреть сообщение
а почему бы и нет?
Потому что одно из них (событие) является частью второго. Когда отлавливается событие двойного клика, непременно этому предшествует событие одинарного клика. Нельзя сделать второй клик, без первого. Это закон природы.

Код MrCrown, работает, но ТС походу впихивает повсюду MSgbox для проверки вместо Me.text = ..., тем самым вклиниваясь между первым и вторым кликом, и по этому, ясень пень, двойной клик не получается.
3
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
08.06.2019, 22:39  [ТС]
_Radik_, как тогда обработать клики?
Такое ощущение что только у меня в этим возникли трудности, у всех все работает по дефолту правильно!(
Практическое руководство. Распознавание одиночных и двойных щелчков - на сайте Microsoft тоже как-то с существованием этих функций распознование кликов отдельно происходит через вычисления разницы нажатия в мили секундах через таймер((
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
09.06.2019, 01:58
mostApi, ну я хочу сказать, что по ссылке выше очень грамотно выполнена реализация DoubleClick...
0
258 / 199 / 49
Регистрация: 18.12.2015
Сообщений: 416
09.06.2019, 09:56
Цитата Сообщение от mostApi Посмотреть сообщение
_Radik_, как тогда обработать клики?
не ставить точки останова на первой строке вызываемой процедуры?

Добавлено через 18 минут
VB.NET
1
2
3
4
5
6
7
8
9
    Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
        TraceMessage(sender.Name)
    End Sub
    Private Sub PictureBox1_DoubleClick(sender As Object, e As EventArgs) Handles PictureBox1.DoubleClick
        TraceMessage(sender.Name)
    End Sub
    Public Sub TraceMessage(message As String, <Runtime.CompilerServices.CallerMemberName> Optional memberName As String = Nothing)
        ListBox1.Items.Add("sender:" & message & " - caller: " & memberName)
    End Sub
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
10.06.2019, 09:17  [ТС]
Jungl, Yury Komar, _Radik_, MrCrown, странно, но вот так работает, спасибо.
VB.NET
1
2
3
4
5
6
7
8
9
    Private Sub PictureBox1_Clicks(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.Click, PictureBox1.DoubleClick
        If e.Button = MouseButtons.Left Then
            If e.Clicks = 1 Then
                Label1.Text = 1
            Else
                Label1.Text = 2
            End If
        End If
    End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2019, 09:17
Помогаю со студенческими работами здесь

Программное создание PictureBox с проверкой, нет ли на его месте другого PictureBox
Здравствуйте! Нужно чтобы при нажатии кнопки создавался PictureBox с определёнными свойствами Location: x, y и SizeMode: Autosize и в него...

Как остановить GIf анимацию в PictureBox по клику на сам PictureBox?
Добрый день! Прошу помочь решить вопрос с GIF анимацией в PictureBox. Задумка такова: Проигрывается гифка и при клике на на...

PictureBox имеет прозрачность относительно формы, но не PictureBox, на котором расположен
Подскажите, пожалуйста. У меня такая ситуация: Один PictureBox наложен на другой. Но тот, который находится выше - должен быть с прозрачным...

Конфликт между PictureBox.Load и PictureBox.Image.Save
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click Дан код. ...

Копирование содержимого одного PictureBox в другой PictureBox
Здравствуйте, допустим у меня есть paintbox1 в котором я рисую сложный график, и есть paintbox2. Как скопировать содержимое первого...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru