У меня есть эта проблема, что событие, называемое «MouseEnter», не срабатывает при нажатии кнопки мыши. Как я могу это исправить?C# запускает MouseEnter, даже если кнопка мыши удерживается
0
A
ответ
2
Это по дизайну. Вы можете работать вокруг него с помощью, скажем, MouseMove:
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Point pt = TargetControl.PointToClient(Cursor.Position);
Rectangle rc = TargetControl.ClientRectangle;
if (rc.Contains(pt))
{
// do what would be done on MouseEnter
}
}
}
Это не идеально, хотя - если нажата кнопка мыши , когда мышь парит над другим контролем в форме, то это Безразлично» t появляется в событии MouseMove, что кнопка нажата (как указал @Hans, другой элемент управления «Захватывает» MouseDown). Если это проблема, то объединение теста ударов в MouseMove, в то время как отдельно отслеживание MouseDown и MouseUp в форме должно работать.
Также не должно быть сообщений MouseMove. –
@ Ханс - да, есть, я тестировал, что это сработало. – stuartd
Нажмите на кнопку управления, удерживайте кнопку мыши, переместите ее над формой, чтобы увидеть, что я имею в виду. –