tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 御報告
投稿日: 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 
 どうもありがとうございました!!!

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。