タイトル | : Re^3: ラインのドラッグ移動 |
記事No | : 14960 |
投稿日 | : 2010/10/08(Fri) 09:25 |
投稿者 | : 花ちゃん |
Form に Label を2個貼り付けて、下記コードをコピー & ペースト して見て下さい。
摘まみを作成していないので摘まみにくいので、Label の幅を広くしております。 右側のライン(擬似的に)をドラッグして移動できるようにしております。 最終的にどのようにしたいのは知りませんが、当初の質問の範囲なら下記のように しても目的を達成できるかと思います。 (高度な事は何もしていないので後は、同様にひたすら力技の出番かと)
Option Explicit
Private XPos As Long Private YPos As Long Private fomLeft As Long Private fomTop As Long
Private Sub Label2_DragDrop(Source As Control, X As Single, Y As Single) '同一コントロール内でドロップした場合の補正 Source.Move (Label2.Left + X - XPos), (Label2.Top + Y - YPos) End Sub
Private Sub Label2_MouseDown(Button As Integer, Shift As _ Integer, X As Single, Y As Single) 'ドラッグ開始位置の保存とドラッグの開始 YPos = Y XPos = X Label2.Drag vbBeginDrag End Sub
Private Sub Form_DragDrop(Source As Control, _ X As Single, Y As Single) 'フォーム上にドロップした時の補正 Source.Move X - XPos, Y - YPos End Sub
Private Sub Form_Load() With Label1 .Appearance = 0 .BorderStyle = 1 .Top = 800 .Left = 1000 .Height = 3000 .Width = 15 End With With Label2 .Appearance = 0 .BorderStyle = 1 .Top = 800 .Left = 5000 .Height = 3000 .BackColor = vbBlack .Width = 90 '摘まみにくいので太く描画 End With Label2.OLEDropMode = vbOLEDropManual ' 1 End Sub
|