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

タイトル Formのマウスドラッグ移動時に変な挙動をいたします
投稿日: 2009/12/24(Thu) 11:28
投稿者camputer
 こんにちは、いつも勉強させていただいておりますcamputerと申します。
VB.NET歴1年強、プログラム歴10年です。
質問させていただきます。どうぞよろしくお願いいたします。

 開発環境:VB2008+XP SP3 になります。
 Form1(Form1+その直上のPanel1(BackColor=Transparent))をドラッグした際に
Formの移動を行えるように、↓のようにコーディングいたしておりますが、
    Panelの輪郭線にMouseDown(少しクリックポイントが厳しいかもしれません)
   →そのまま少しドラッグ
   →MouseUp
といたしますと、Formが明後日の方向に飛ぶように移動することがあります。。。
もしくはFormが移動せず、悩んでおります。

    Private Sub Form1_MouseDown(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.MouseEventArgs) _
        Handles MyBase.MouseDown, Panel1.MouseDown

        If (e.Button And MouseButtons.Left) = MouseButtons.Left Then
            mousePoint = New Point(e.X, e.Y) '位置を記憶
        End If
    End Sub

    Private Sub Form1_MouseMove(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.MouseEventArgs) _
        Handles MyBase.MouseMove, Panel1.MouseMove

        If (e.Button And MouseButtons.Left) = MouseButtons.Left Then
            Me.Location = New Point(Me.Left + e.X - mousePoint.X, Me.Top + e.Y - mousePoint.Y)
        End If
    End Sub

 そこで、移動距離が大きいときのみ制限をかけてみて、、、
 If System.Math.Abs(e.X - mousePoint.X) < 50 Then
などと工夫したりいたしましたが、根本的に解決いたしませんorz

 少し変なご相談かもしれませんが、何かよい方法など思いつく方がいらっしゃいましたら、
是非ともアドバイスいただきたくお願い申し上げます。
どうぞよろしくお願いいたします。

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

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