Domanda

O non comprendo totalmente il modo in cui gli eventi funzionano o il prisma Delphi è impazzito !!!

Ho un evento Winform, MouseDown e MouseMove.Ogni volta che faccio clic sul tasto sinistro del mouse, solo il tasto MOUSEDown si incrementa come previsto ma anche l'evento MouseMove si rivolge subito dopo quando non suppone.

Ecco il pezzo di codice dal mio designer WinForm in cui i metodi sono assegnati agli eventi.

  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);
.

Cosa sto facendo male?Per favore, aiuto che sto diventando frustrato su questo, perché ho eventi di mousemove in altre parti del mio programma.Funzionano bene.Non riesco a capire perché questo evento di mousemove perticular funziona.

È stato utile?

Soluzione

Ho dimenticato il motivo che succede.

Ma per un possibile lavoro in giro:

Point _LastPoint = Point.Empty;

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top