Получить точку щелчка на элементе управления - PullRequest
2 голосов
/ 09 августа 2010

Я использую старый элемент управления ActiveX в моем приложении C # Win. у него есть событие MouseUp, что его eventArgs передает X и Y точки, которую мы щелкнули, но для моего сценария я использую его событие ItemClick, а его eventArgs не имеет информации о X и Y. но мне нужно знать их, чтобы показать мое всплывающее окно ... так что есть ли способ узнать, где X и Y, что пользователь щелкнул правой кнопкой мыши, чтобы я мог передать его в свой метод contextMenuStrip.Show.

Спасибо

Ответы [ 3 ]

5 голосов
/ 09 августа 2010

Cursor.Position даст вам текущие координаты экрана курсора.Для большинства случаев это достаточно хорошо, даже если мышь может перемещаться между щелчком мыши и вызываемым обработчиком.

5 голосов
/ 09 августа 2010

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

Из MSDN:

Control.MousePosition Свойство

Тип: System.Drawing.Point

Точка, содержащая координаты курсора мыши относительно левого верхнего угла экрана.

4 голосов
/ 02 мая 2012

Вам нужно получить позицию курсора, которая получает положение экрана, затем вызвать pointToClient из элемента управления, чтобы получить соответствующую точку для элемента управления.Ака.0,0 - верхний левый угол элемента управления.

this.PointToClient(Cursor.Position);

+ 1 к другим ответам, которые ведут меня в правильном направлении.

...