C#で何か作る日記

C#初学者が何かを作るその過程を備忘録として書いていく日記。同じようなことで悩んでいる1人、2人の役に立てたら嬉しいな。プログラムの他にたまに3Dモデルも作ったり作らなかったり。

マウスのイベントを確認

今回はPictureBoxの……というよりマウスのイベントがどのタイミングで発生するかを確認。

こんな感じの画面を作って検証。
f:id:MrSoumen:20170918101742p:plain
番号は
 ①PictureBox。今回はここを中心に色々動作。
 ②同じアプリケーション上だけどコントロール外。
 ③アプリケーション外。

  • ②から①にマウスを入れて②へ出す。この時クリックはしない

(イベントなし) → (①に乗せる)MouseEnter → MouseMove →(①から出す) MouseLeave


  • コントロール①上でクリックしてすぐリリース

MouseDown → Click → MouseClick → MouseUp → MouseCaptureChanged

   右クリックでも左クリックでも同じだった。

  • ①上でクリックしそのままドラッグして①上でリリース

MouseDown → MouseMove → Click → MouseClick → MouseUp → MouseCaptureChanged


  • ①上からドラッグして②、③へ。②、③でマウスをリリース

MouseDown → MouseMove →(②or③) → MouseMove → MouseUp → MouseCaptureChanged → MouseLeave

   コントロールからマウスポイントが外れたときに発生するMouseLeaveイベントはポインタが外れたタイミングじゃなくてボタンをリリースしたタイミングで発生する様子。

  • ①上からドラッグして②、③へ。また①に戻ってマウスをリリース

MouseDown → MouseMove → Click → MouseClick → MouseUp → MouseCaptureChanged


今気になるのはこんなところかな。
ボタンを押したままコントロール外に出る処理がちょっと想定外。
何かを移動させたりする際にはどのイベントにどの処理を実装するかを考えないと。