c # найти положение мыши относительно элемента формы - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь справиться с событием мыши, которое реагирует в соответствии с положением мыши относительно элемента, который получает событие.Дело в том, что обработчики событий обычно получают такие параметры:

(отправитель объекта, MouseEventArgs e) // как сгенерировано IDE

, и я могу получить положение мыши со значениями eX и eYЭто значения указателя мыши относительно всего окна.

Каждый элемент в форме имеет некоторые свойства, такие как Location.X и Location.Y, которые представляют позицию левого верхнего угла относительно его контейнера.,Дело в том, что, если элемент не находится внутри другого контейнера внутри окна, поиск позиции относительно элемента с чем-то вроде

eX - thing.Location.X, eY - thing.Location.Y

не будет работать.Кроме того, мне нужно будет отслеживать, где находится элемент, если я помещу его в панель с подразделениями, я должен отслеживать местоположение каждого подразделения над ним и т. Д.

Как мне получитьОтносительное положение мыши относительно элемента в окне, без отслеживания контейнеров или необходимости редактировать код каждый раз, когда я перемещаю элемент из одного контейнера в другой во время редактирования?или как мне получить относительную позицию элемента ко всему окну раз и навсегда?

tnx

--- edit:

кажется, что в элементах управления естьметод с именем GetContainerControl;Я мог бы создать цикл, который добавляет местоположение каждого родительского контейнера до тех пор, пока не останется больше контейнеров, и я оставлю это как альтернативу, но я нахожу это немного неуклюжим

...