-PR-
解決
済み

コントロールのドラック&ドロップ

  • すぐに回答を!
  • 質問No.40052
  • 閲覧数675
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 6% (4/59)

コンニチワ
VBでフォームに配置したコントロールを
ドラック可能にして
フォーム上でドラック&ドロップを
検出してドラック前の位置から
ドロップ後の位置にコントロールを
移動させたいのですが
どうしてもずれたりして
上手く配置されません
どなたか同じようなことをやったことがある方
ベストなやり方
わかる方教えて下さい
よろしくお願いします
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル8

ベストアンサー率 60% (20/33)

ちは。
Formにコントロールを張付けて以下のコードで実行すればOKです。
-----------------------------------------
Option Explicit

Dim Drg As Boolean'ドラッギングフラグ
Dim DrX As Single, DrY As Single'位置情報

Private Sub Image1_MouseDown(Button As Integer, ShiftState As Integer, x As Single, y As Single)
If Button = 1 Then
If Drg = False Then
Drg = True
DrX = x: DrY = y
Image1.ZOrder 0
End If
End If
End Sub

Private Sub Image1_MouseMove(Button As Integer, ShiftState As Integer, x As Single, y As Single)
Dim XX As Single, YY As Single

If Button = 1 Then
If Drg Then
XX = Image1.Left + x - DrX
YY = Image1.Top + y - DrY
Image1.Move XX, YY
End If
End If
End Sub

Private Sub Image1_MouseUp(Button As Integer, ShiftState As Integer, x As Single, y As Single)
Drg = False
End Sub
------------------------------------------------
じゃ、そゆことで。
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル4

ベストアンサー率 0% (0/6)

こんにちは。 最近 VB を触っていないのですが、ドラッグ開始のタイミングを MouseDown でおこなっているのなら、ドラッグ開始時点のコントロール内のマウス座標が得られるはずです。それを、ドロップ時の座標から引けばいいと思います。 (ドロップされたx座標-ドラッグ時のx座標, ドロップされたy座標-ドラッグ時のy座標) に動かせばいいのでは。 ただし、ドラッグ対象のコントロールと、ドロップ ...続きを読む
こんにちは。
最近 VB を触っていないのですが、ドラッグ開始のタイミングを MouseDown でおこなっているのなら、ドラッグ開始時点のコントロール内のマウス座標が得られるはずです。それを、ドロップ時の座標から引けばいいと思います。
(ドロップされたx座標-ドラッグ時のx座標, ドロップされたy座標-ドラッグ時のy座標) に動かせばいいのでは。

ただし、ドラッグ対象のコントロールと、ドロップされるコンテナの座標系が異なる場合には、適切な変換が必要だと思います。


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ