2 / 2 / 0
Регистрация: 22.03.2011
Сообщений: 56

Как отследить позицию мыши при нажатии?

10.04.2011, 22:38. Показов 5988. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажите пожалуйста, как мне отследить положение (x, y) нажатия мыши?? Я пробовал в событии Click находить MousePosition, но получаться, при нажатии на другой элемент, событие не происходит! Подскажите, что мне делать??
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2011, 22:38
Ответы с готовыми решениями:

Почему при нажатии кнопки мыши происходит событие "перемещение мыши"?
Просто нажал на левую кнопку мыши и сразу же отпустил. А сам указатель мыши находится на месте Почему в этом случает возникает событие...

Как отследить нажатую и зажатую левую клавишу мыши?
Здравствуйте! Пишу программу которая будет отслеживать не только нажатую, но и "зажатую" левую клавишу мыши. На данный...

Отследить позицию мыши в monogame силами net
Народ кто знает подскажите как можно реализовать работу с мышью в обход моногеймовского класса Mouse? Надо как то до winForm достучатся?...

8
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
10.04.2011, 22:42
ну вообще - можешь на каждый контрол повесить обработку MouseClick...
C#
1
2
3
4
        private void Form1_MouseClick(object sender, MouseEventArgs e)
        {
            MessageBox.Show(e.X.ToString() + " " + e.Y.ToString());
        }
а так чтобы одно общее решение на все - даже не знаю...
1
2 / 2 / 0
Регистрация: 22.03.2011
Сообщений: 56
10.04.2011, 22:47  [ТС]
Тоже самое получаться, что при нажатии на Форму работает, а при нажатии на другой элемент(который находиться сверху),нет...
0
 Аватар для Kayak
10 / 10 / 1
Регистрация: 02.04.2011
Сообщений: 95
10.04.2011, 23:23
Если это то о чем я подумал - пользуйся globalhook
1
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
10.04.2011, 23:24
ну так читай внимательнее...я же сказал, что подобные куски надо создавать ДЛЯ КАЖДОГО контрола на твоей форме...
ну и не забывать о том, что таким кодом выведешь положения курсора относительно самого контрола, то есть надо будет плюсовать его положение...
1
19 / 19 / 4
Регистрация: 29.10.2009
Сообщений: 150
10.04.2011, 23:30
а относительно чего нужно получать координаты?
попробуй класс Mouse в System.Windows.Input или Cursor в System.Windows.Forms
также в Control есть свойство MousePosition.
1
2 / 2 / 0
Регистрация: 22.03.2011
Сообщений: 56
11.04.2011, 00:00  [ТС]
Цитата Сообщение от znake Посмотреть сообщение
ну так читай внимательнее...я же сказал, что подобные куски надо создавать ДЛЯ КАЖДОГО контрола на твоей форме...
ну и не забывать о том, что таким кодом выведешь положения курсора относительно самого контрола, то есть надо будет плюсовать его положение...
Просто у меня 64 элемента. И для каждого делать???
Нужно находить положение X:Y относительно формы при нажатии на любой её элемент, или на неё...

Добавлено через 24 минуты
всё, всем спасибо! я понял! я для каждого объекта подключил одно событие, а в нём уже смотрел позицию, относительно Form...
0
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
11.04.2011, 00:09
Ну получить координаты можно так:
C#
1
2
int X=System.Windows.Forms.Cursor.Position.X-this.Left;
int Y = System.Windows.Forms.Cursor.Position.Y - this.Top;
У вас 64 элемента, я так понимаю, что на них есть событие клика, ну или чего то подобного, ну вот и напишите этот код в них. если нет-то можно прописать что бы при событии клика все компоненты обращались к одному методу в котором будут 2-е эти строки....не устраивает, тогда ставьте на форму таймер в обработчике тика пишите:
C#
1
2
3
4
5
if (GetAsyncKeyState(1) != 0)
{
int X=System.Windows.Forms.Cursor.Position.X-this.Left;
int Y = System.Windows.Forms.Cursor.Position.Y - this.Top;
}
GetAsyncKeyState это винапи функция, ее надо подключить, делается это так
C#
1
2
3
4
5
6
7
8
9
using System.Runtime.InteropServices;
............
public Form1()
{
       InitializeComponent();
}
 
[DllImport("User32.dll")]
private static extern short GetAsyncKeyState(System.Int32 vKey);
если таймер вас не утраивает....тогда только хуки
2
2 / 2 / 0
Регистрация: 22.03.2011
Сообщений: 56
11.04.2011, 00:43  [ТС]
Спасибо большое! мой способ так и не заработал правильно, а вот ваш, только один минус у этого метода, он не вычитает шапку Form1, и слева немного. просто я отталкивался из Position объектов, а Position не берёт во внимание это. Но ничего, мне и этого хватит!! Спасибо!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.04.2011, 00:43
Помогаю со студенческими работами здесь

Как отследить клик мыши при нажатой клавише Ctrl?
Всем здравствуйте. Нужно выполнить команду только в том случае, если пользователь кликнул по кнопке мышкой удерживая при этом нажатой...

При нажатии средней кнопки мыши, а также при нажатии на ссылки в браузере Firefox открываются рекламные сайты
При нажатии средней кнопки мыши, а также при нажатии на ссылки в браузере Firefox открываются рекламные сайты Антивирус касперского...

Как отследить статус клавиши CTRL при нажатии на кнопку ToggleButton?
Нужно при нажатии ToggleButton поймать - нажата ли в этот момент клавиша контрол и в соответсвии с этим добавить к Caption тоггла символ...

Вывод и удаление символа в координатах курсора мыши при нажатии на кнопки мыши
У меня есть вот такая задача: ПРи нажатии правой кнопки мыши обеспечить вывод на монитор по координатах x y курсора некторого символа ,...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru