2010-08-09 2 views
2

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

Благодаря

+2

Это может помочь и для справки: http://stackoverflow.com/questions/1316681/getting-mouse-position-in-c – mint

ответ

5

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

Из MSDN:

Control.MousePosition собственность

Тип: System.Drawing.Point

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

5

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

+0

спасибо corvuscorax, и ваш ответ, и флетчер работал на меня. Я отметил его как «ответ» только потому, что он был опубликован ранее. – Bohn

+0

+1 Оба решения возвращают координаты мыши. Было бы неправильно не повышать – fletcher

4

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

this.PointToClient(Cursor.Position); 

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

Смежные вопросы