Pourquoi l'événement MouseMove tire-t-il lorsque la souris qui reste est cliquée uniquement pour l'événement Mousedown?

StackOverflow https://stackoverflow.com/questions/8418738

Question

Soit je ne comprends pas totalement le fonctionnement des événements, soit Delphi Prism est devenu fou !!!

J'ai un événement Winform, Mousedown et Mousemove Event. Chaque fois que je clique uniquement sur le bouton de la souris gauche, l'événement Mousedown se déclenche comme prévu, mais aussi l'événement Mousemove se déclenche juste après quand il n'est pas supposé.

Voici le morceau de code de mon concepteur WinForm où les méthodes sont affectées aux événements.

  self.ClientSize := new System.Drawing.Size(751, 502);
  self.KeyPreview := true;
  self.Name := 'Maker';
  self.Text := 'Window Maker';
  self.Load += new System.EventHandler(@self.Maker_Load);
  self.FormClosing += new System.Windows.Forms.FormClosingEventHandler(@self.Maker_FormClosing);
  self.Shown += new System.EventHandler(@self.Maker_Shown);
  self.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(@self.Maker_MouseDoubleClick);
  self.MouseDown += new System.Windows.Forms.MouseEventHandler(@self.Maker_MouseDown);
  self.MouseMove += new System.Windows.Forms.MouseEventHandler(@self.Maker_MouseMove);
  self.MouseUp += new System.Windows.Forms.MouseEventHandler(@self.Maker_MouseUp);
  self.Paint += new System.Windows.Forms.PaintEventHandler(@self.Maker_Paint);
  self.ObjectPopup.ResumeLayout(false);
  self.ResumeLayout(false);

Qu'est-ce que je fais mal? S'il vous plaît, aidez-moi, je suis frustré à ce sujet, car j'ai des événements Mousemove dans d'autres parties de mon programme. Ils fonctionnent bien. Je n'arrive pas à comprendre pourquoi cet événement Perticular Mousemove agit.

Était-ce utile?

La solution

J'oublie la raison qui se produit.

Mais pour un travail possible:

Point _LastPoint = Point.Empty;

private void Form1_MouseMove(object sender, MouseEventArgs e) {
  if (_LastPoint != e.Location) {
    _LastPoint = e.Location;
    // run MouseMove code:
  }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top