Как мне получить координаты мыши X и Y в событии ввода мыши form1?

#c# #.net #winforms

#c# #.net #winforms

Вопрос:

 private void Form1_MouseEnter(object sender, EventArgs e)
{

}
  

e не имеет свойств X и Y .

Я хочу, чтобы при наведении курсора мыши на элемент управления он что-то делал.

Комментарии:

1. Поделитесь своим кодом, который вы пробовали

2. Взгляните на OnMouseMove .

3. @Aniket Операция показала текущий код — в ней нет свойств X и Y EventArgs , чтобы показать что-либо более значимое.

Ответ №1:

Вы можете получить текущее положение курсора, используя Cursor.Current статическое свойство:

 var x = Cursor.Current.Position.X;
var y = Cursor.Current.Position.Y;
  

Обратите внимание, что MouseEnter событие срабатывает только тогда, когда курсор входит в границу элемента управления. Возможно, это то, что вы хотите, но ваше последнее предложение, похоже, указывает на то, что вы хотите знать, когда мышь перемещается внутри элемента управления. В этом случае MouseMove может быть более подходящим событием для обработки.

Комментарии:

1. Этот синтаксис у меня не работает. Cursor.Position работает, но Cursor.Current.Position приводит к Member 'System.Windows.Forms.Cursor.Position.get' cannot be accessed with an instance reference; qualify it with a type name instead . Я единственный?

Ответ №2:

Используйте элемент управления.Статическое свойство MousePosition следующим образом:

 void Form1_MouseEnter(object sender, EventArgs e) {
    Point screenPosition = MousePosition; 
    Point clientPosition = PointToClient(screenPosition);
}
  

Ответ №3:

 private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        Point p = e.Location;
    }