¿Por qué el evento de Mousemove se dispara cuando se hace clic en el mouse izquierdo solo para el evento de Mousedown?

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

Pregunta

¡O bien, no estoy entendiendo totalmente cómo funcionan los eventos o el prisma de Delphi se ha vuelto loco!

Tengo un evento de Forma WinForm, Mousedown y Mouseemove.Siempre que haga clic en el botón izquierdo del ratón solamente, el evento de Mousedown se incendió como se esperaba, pero también el evento de mousemove se dispara justo después de que no se supone.

Aquí está la pieza de código de mi diseñador WinForm donde se asignan los métodos a los eventos.

  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é estoy haciendo mal?Por favor, ayuda, me estoy frustrando sobre esto, porque he sofocado eventos en otras partes de mi programa.Ellos trabajan bien.Parece que no puedo averiguar por qué este evento de mousemove pertical está actuando.

¿Fue útil?

Solución

Olvido la razón que sucede.

pero para un posible trabajo alrededor:

Point _LastPoint = Point.Empty;

private void Form1_MouseMove(object sender, MouseEventArgs e) {
  if (_LastPoint != e.Location) {
    _LastPoint = e.Location;
    // run MouseMove code:
  }
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top