С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/41: Рейтинг темы: голосов - 41, средняя оценка - 4.71
 Аватар для Dim1One
44 / 44 / 4
Регистрация: 30.04.2011
Сообщений: 283

Как получить координаты места клика мышью относительно объекта, а не формы

28.06.2011, 20:17. Показов 8340. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как получить координаты места клика мышью относительно определенного объекта, а не формы?
Исследование показали, что координаты всегда определяются относительно формы, а не PictureBox1'a:
VB.NET
1
2
3
4
5
6
7
    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        MsgBox(Cursor.Position.ToString)
    End Sub
 
    Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        MsgBox(Cursor.Position.ToString)
    End Sub
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.06.2011, 20:17
Ответы с готовыми решениями:

Как узнать координаты клика мышью в ActiveX контроле?
Как в ActiveX контроле узнать координаты точки куда мы кликнули мышкой?

Как получить координаты курсора относительно формы при нажатии кнопки мыши?
Всем привет! Как получить координаты курсора относительно формы при нажатии кнопки мыши? То есть, если я кликну на форму, то переменным x и...

Получить координаты мышки относительно формы, но не экрана
MousePosition показывает координаты мышки относительно монитора, но мне нужно относительно формы, чтото вроде этого: Mouse.Location

8
290 / 271 / 107
Регистрация: 10.06.2011
Сообщений: 696
28.06.2011, 22:33
Отними от высоты клика вертикальный отступ объекта от верхней границы формы
с длиной аналогично
0
 Аватар для Dim1One
44 / 44 / 4
Регистрация: 30.04.2011
Сообщений: 283
29.06.2011, 06:51  [ТС]
Pipyak, совсем не то получается:
VB.NET
1
2
3
    Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        MsgBox(Cursor.Position.X - PictureBox1.Left & "  " & Cursor.Position.Y - PictureBox1.Top)
    End Sub
Если переместить PictureBox1 на форме, то координаты всегда разные получаются.
0
290 / 271 / 107
Регистрация: 10.06.2011
Сообщений: 696
29.06.2011, 10:58
VB.NET
1
2
3
4
5
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        Dim a as string
a=Cursor.Position.X - PictureBox1.Left & "  " & Cursor.Position.Y - PictureBox1.Top
MsgBox a
    End Sub
а так?
0
 Аватар для Dim1One
44 / 44 / 4
Регистрация: 30.04.2011
Сообщений: 283
29.06.2011, 14:20  [ТС]
Pipyak, ты написал тоже самое, только с помощью переменной. Это тоже положительного резултата не дает.
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
29.06.2011, 17:08
а использовать параметр e процедуры
VB.NET
1
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
???
VB.NET
1
2
3
Private Sub PictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        MsgBox(e.Location.ToString)
    End Sub
для чего вообще процедуры имеют параметры? Попробуйте
1
 Аватар для Dim1One
44 / 44 / 4
Регистрация: 30.04.2011
Сообщений: 283
29.06.2011, 20:48  [ТС]
Юпатов Дмитрий, спасибо, теска. Работает.
0
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
13.07.2011, 17:06
а на сколько мне известно cursor.position возвращает позицию курсора относительно экрана, а не формы и не всему тому о чем Вы пишите
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
13.07.2011, 19:18
Цитата Сообщение от eJ_Studio Посмотреть сообщение
cursor.position возвращает позицию курсора относительно экрана
совершенно верно, но не в моем варианте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.07.2011, 19:18
Помогаю со студенческими работами здесь

QGraphicsView координаты клика мышью
Hallo. Продолжая предыдущую тему про картинку и вывод текста в нее, решил добавить возможность замены текста по клику мышью в определенную...

Как переместить курсор на координаты относительно формы?
Здравствуйте! Задача такая: по нажатию на кнопку курсор должен перемещаться на определенные координаты внутри этой формы. Вариант...

Как узнать координаты курсора мыши относительно формы?
Как узнать координаты курсора мыши? Добавлено через 35 минут относительно окна нужно

Как получить координаты окна относительно одного монитора?
как получить координаты окна относительно одного монитора в многомониторной винде? GetWindowRect дает только координато относительно всего...

Как указать координаты элемента относительно формы, а не панели, на которой он размещен?
Как указать координаты элемента относительно формы, а не панели, на которой он размещен? На форме несколько панелей. pictureBox1...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
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. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru