MouseDownイベントのみにマウスをクリックすると、MouseMoveイベントが発砲するのはなぜですか?

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

質問

どちらのイベントの仕事やDelphi Prismが怒っているかを全く理解していません!!!

私はWinForm、MouseDownイベント、MouseMoveイベントを持っています。マウスの左ボタンのみをクリックすると、Mousedownイベントは予想どおりに起動しますが、MouseMoveイベントが発生していないと想定していません。

これは、メソッドがイベントに割り当てられている私のWinform Designerからのコードです。

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

私は何をしていますか?私は私のプログラムの他の部分にMouseMoveイベントを持っているので、私がこれ以上イライラしているのを助けてください。彼らは大丈夫です。私はこの母斑モーモーブイベントが行動している理由を理解することはできません。

役に立ちましたか?

解決

私は起こる理由を忘れます。

しかし、頃に考えられる作業のために:

Point _LastPoint = Point.Empty;

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top