プロが教える店舗&オフィスのセキュリティ対策術

VB2005で、下記のサイトにあるようなことをしたい。
「インスタンスをドラッグしたい」
ttp://hakuhin.hp.infoseek.co.jp/main/as/mouse.html#MOUSE_04

Flashと連動させる以外に方法があれば、教えてください。

A 回答 (1件)

フォームがコンテナでいいのでしょうか?



ピクチャーボックスのMouseDownイベントでDragを開始するフラグをセットして DoDragDropメソッドを使います

Form側のDragEnter,DragLeaveやDragDropイベントを記述してピクチャーボックスの移動を実行します

フォームレベルの変数として
Dim bDrag as Boolean, pt as Point
を準備します

ピクチャーボックスのMouseDownイベントで
if bDrag = false then
  bflag = true
  PictureBox1.DoDragDrop( PicturBox1, DragDropEffects.Copy)
  pt = e.Location
  Form1.AllowDrop = true
end if
といった具合にして D&Dを開始します

フォームのDragEnterイベントで
if e.Data.GetDataPresent( GetType( PictureBox ) ) then
  e.Effect = DragDropEffects.Copy
End if
といった具合に D&Dの属性を設定します

フォームの外へ移動してしまった場合に フラグをリセットするために
DragLeaveイベントを使います
bDrag = False

ドロップされたら その位置にピクチャーボックスを移動する処理は
フォームの DragDropイベントに記述します

  dim p as New Point( e.X, e.Y )
  ' 引数の座標はスクリーン座標でくるので
  ' Formのクライアント座標に変換します
  p = Me.PointToClient( p )
  ' ピクチャーボックス内の何処をクリックされていたのかを
  ' ptに記憶してあるのでこれを加算します
  p.Offset( -pt.X, -pt.Y )
  PictureBox1.Location = p
  bDrag = false

といった具合で D&D出来ると思いますよ
    • good
    • 0
この回答へのお礼

ありがとうございます。
VB中学校というサイトでも、細かく解説されておりました。

助かりました!

お礼日時:2008/04/30 19:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!