タイトル : 御報告 投稿日 : 2010/01/20(Wed) 12:21 投稿者 : camputer
こんにちは、ご報告させていただきますm(_ _)m 結局、Panel外周上のMouseDownを検知する方法を考案しようと いたしましたができませんでした。。 問題だった現象でございますが、 Formのどこかを正常にドラッグしてForm移動(この時点で問題なし) →境界にMouseDown(これが検知されていないので、 前回のドラッグ終了時のマウス位置が残ったまま) →マウスドラッグして直下のForm領域内に入ると MyBase.MouseMoveのコードの マウスの位置 = 旧座標 + 移動距離 における「旧座標」に前回のドラッグ終了時点の座標が入っておりました。 さらに質問前段階ではそこにクライアント座標が代入されておりましたため 現象が複雑になっておりました。 あと大きいFormをたくさん扱う必要から、複数のFormが 輪郭を消して重なっておりまして、毎回起動するMyBase.MouseMoveが 異なりましたこととが、現象を複雑化させておりました。。。 そこで、(重くなるのを覚悟で)Form全体のスクリーンショットを Form.BackGroundImageに貼り付けてから Panel.BorderStyleをすべてNoneにいたしました。 これからFormの形状変更のたびに貼り付けなおすことになりますが。。。。orz 花ちゃん様とYuO様からスクリーン座標に直せとアドバイスいただけて リンク先も読ませていただいたおかげで、その後は挙動がシンプルになり 分かりやすくなりましたので現象解明はけっこう早くできました。 輪郭のMouseDownの検知がどうしてもできませんが。。。。orz 今回もまた問題解決のみならず、知識とできることが増えました。 重ね重ねお礼申し上げます。 いつもご親切に教えていただける自分は幸せものです。m(_ _)m どうもありがとうございました!!! |