我遇到这个问题,当按住鼠标按钮时,名为“MouseEnter”的事件不会触发。我怎么能解决它?
答案 0 :(得分:3)
这是设计的。您可以使用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
}
}
}
但这并不理想 - 如果当鼠标悬停在表单上的另一个控件上时按下鼠标按钮,则按钮按下时MouseMove事件中不会显示(正如@Hans指出的那样,另一个控件'捕获'MouseDown)。如果这是一个问题,那么在MouseMove中组合命中测试,同时在表单上单独跟踪MouseDown和MouseUp应该有效。