Top.Mail.Ru
Ответы
Аватар пользователя
12лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Как определить координаты указателя мыши в Windows forms? подробности внутри..

Как определить координаты указателя мыши в Windows forms, если на нужно найти координаты внутри какого то элемента (например PictureBox), а не координаты указателя мыши на экране (экранные координаты) ?

Например, вот так я находил координаты указателя мыши на экране по оси X (прописывалось для события Mouse Up).
int CurX = System::Convert::ToUInt32(Control::MousePosition.X);

Т. е. координатная плоскость - весь экран монитора и точка отсчета (0,0) - левый верхний угол экрана.
Мне же требуется за эту плоскость взять определенный элемент управления, в данном случае - PictureBox, а за точку отсчета (0,0) взять левый верхний угол элемента PictureBox.

Как я понимаю, есть два способа реализации. Первый способ это преобразовать экранные в свои (в MSDN их вроде как называют "пользовательские").
Второй способ - это непосредственно использовать какой-то метод какого-то класса (пишу "какой-то", потому что не знаю есть ли такой и если нет, то как его реализовать не знаю) , который определяет "пользовательские координаты, независимо от экранных. Или есть свойство вроде MousePosition класса Control (не знаю чем отличается метод от свойства, простите грешника, если есть кто умный - просветите!:) )

Второй способ намного лучше, так как нам не придется возиться с преобразованиями, учитывать размеры экрана монитора, его разрешение и т. д.

Т. о. у меня сформулировались два конкретных вопроса:
- можно ли реализовать 2-м способом задачу?
- если можно, и он есть в стандартных методах, например как метод (свойство) MousePosition класса Control, то назовите его: )

Огромное спасибо!

По дате
По рейтингу
Аватар пользователя
Мастер
12лет

Событие OnMouseMove отслеживает локальные координаты курсора на объекте