投稿者 やむちゃ  (社会人) 投稿日時 2016/10/11 20:45:13
以下のようなコードで
フォーム上に配置したテキストボックス等のコントロールを
マウスでドラッグアンドドロップ可能にしました。

これを、
①コントロールの開始位置から同じX方向か同じY方向にしか移動できないようにしたい。
(将棋の飛車のような動き)
②①のような動きで、Ctrlキーでのコピー処理をしたい。
のように改造したいのですが、行き詰っています。
どのようにすればよいか、アドバイスをお願いいたします。

Public Class Form1

Private StartPositon As Size  

Private Sub TextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDown

        If e.Button = System.Windows.Forms.MouseButtons.Left Then
             StartPositon = New Size(e.X, e.Y)
        End If

 End Sub

Private Sub TextBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseMove

        If e.Button = System.Windows.Forms.MouseButtons.Left Then
            
            TextBox1.Location = Point.op_Subtraction(Me.PointToClient(System.Windows.Forms.Cursor.Position), StartPositon)

        End If

End Sub

End Class