#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;
}