タイトル : Re^3: Formのマウスドラッグ移動時に変な挙動をいたします 投稿日 : 2009/12/24(Thu) 18:22 投稿者 : camputer
ご報告になります。 コードを一通りスクリーン座標に直したりして色々とテストいたしておりますが、 Panel1とForm1の境界線にMouseDown:MouseDownを検知できていないので、 初期座標mousePoint.Xが取れない(花ちゃん様に教えていただいたとおり)。 ↓ そのままMouseMoveするとPanel1もしくはForm1の領域に入るのでMouseMoveイベント発動 Form1.Location = New Point(Me.Left + Cursor.Position.X - mousePoint.X _ , Me.Top + Cursor.Position.Y - mousePoint.Y) のmousePoint.Xに変な値が入っているのでFormが飛ぶ。 といった現象のような感じでございます。 そこでmousePoint.X(とmousePoint.Y)をMouseMove中に移動すれば・・・と 試してみましたが、マウスドラッグが速いとmousePoint.X代入値とForm位置とが かなりずれてしまいます。 そこで今、Form上のどこをMouseDownされても取れるように・・・などと考えまして 検索いたしまして、 Me.Capture = True Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) MyBase.WndProc(m) Dim MouseD_X As Integer = 0 Dim MouseD_Y As Integer = 0 If m.Msg = &H202 Then '&H202:マウスの左ボタンMouseDown MouseD_X = Cursor.Position.X MouseD_Y = Cursor.Position.Y : : と書いている途中で、これだとForm1上にあるドラッグされたくないコントロール (Button1など)もドラッグされてしまうのでは・・・orz などと 気づいたところでございます^^; おそらく「Form1の上にPanel1とButton1がある状況で、 Form1 :ドラッグ可 Panel1 :ドラッグ可 Button1:ドラッグ不可 を保ったまま、Form1とPanel1の境界のMouseDownを検知する方法 」 を探すことになりそうでございます。 Button1:ドラッグ不可 の条件がついてきそうでございます。 後出しになってしまい申し訳ございませんm(_ _)m もう少し粘ってがんばってみます。 もしお暇な時間でもございましたら、ちらっとアドバイスしてやっていただけると 光栄でございます。 どうぞよろしくお願いいたします。 (追記になります。↑の書き込みを終えた後で、花ちゃん様からのアドバイスを 読ませていただきました。 たびたび同じことをやらかしてどうもすみません^^;) アドバイスどうもありがとうございます! コーディングを試していただけたということで、お忙しいかもしれませんのに 誠にありがとうございます。すべてスクリーン座標でのものでございますね。 まだ細かいところまで読ませていただいておりませんが、 お礼だけ先にさせていただきますm(_ _)m 今から自分のコーディングと比較してまいります!(`ー´ゞ |