J'ai ce problème que l'événement appelé "MouseEnter" ne se déclenche pas lorsque le bouton de la souris est enfoncé. Comment pourrais-je le réparer?C# déclencher MouseEnter même si le bouton de la souris est maintenu enfoncé
0
A
Répondre
2
C'est de par sa conception. Vous pouvez contourner le problème en utilisant, par exemple, 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
}
}
}
Ce n'est pas idéal, mais - si le bouton de la souris enfoncé lorsque la souris survole un autre contrôle sur la forme, il n » Il apparaît dans l'événement MouseMove que le bouton est enfoncé (comme l'a souligné @Hans, l'autre contrôle 'Capture' le MouseDown). Si c'est un problème, alors combiner le test de hit dans MouseMove tout en suivant séparément MouseDown et MouseUp sur le formulaire devrait fonctionner.
Il n'y aura pas non plus de messages MouseMove. –
@Hans - oui il y a, j'ai testé cela a fonctionné .. – stuartd
Cliquez sur un contrôle Button, maintenez le bouton de la souris enfoncé, déplacez-le sur le formulaire pour voir ce que je veux dire. –