![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
Image1をPicture1(正方形)にドラッグ&ドロップするプログラム
を作りたいと思っています。
このプログラムだとImage1全体がドラッグされるのではなく、
Image1の絵はその位置に残ってImage1の外枠だけがドラッグされてしまいます。
外枠だけでなくImage1の絵も一緒にドラッグできるようにするにはどうすればいいのでしょうか?
また、このプログラムだとドロップする場所(Picture1_)以外で
ドロップしてしまった場合でも画面上からImage1の絵と外枠が消えてしまいます。
ドロップする場所(Picture1_)以外でドロップしてしまった場合は、
Image1全体を画面上に残しておきたいのですがどうすればいいのでしょうか?
Option Explicit
Dim dx As Single, dy As Single
Private Sub Form_Load()
Image1.Picture = LoadPicture(App.Path & "picture.jpg")
Image1.Stretch = True
End Sub
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X - dx, Y - dy
End Sub
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Image1.Drag 1
dx = X: dy = Y 'マウスダウン位置
End Sub
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
Source.Visible = False 'ドロップオブジェクトを非表示にする
Picture1.BackColor = RGB(255, 255, 255)
End Sub
Private Sub Picture1_DragOver(Source As Control, X As Single, Y As Single, _
State As Integer)
If State = 0 Then Picture1.BackColor = RGB(0, 0, 255)
If State = 1 Then Picture1.BackColor = RGB(255, 255, 255)
End Sub
No.1ベストアンサー
- 回答日時:
Dim dx As Single, dy As Single
↑の使用目的がわからないので削除しました。
Option Explicit
Private Sub Form_Load()
Image1.Stretch = True
Image1.Picture = LoadPicture(App.Path & "picture.jpg")
End Sub
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Image1.Drag 1
End Sub
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
Source.Visible = False 'ドロップオブジェクトを非表示にする
Picture1.BackColor = RGB(255, 255, 255)
Picture1.Picture = Source.Picture
End Sub
Private Sub Picture1_DragOver(Source As Control, X As Single, Y As Single, _
State As Integer)
If State = 0 Then Picture1.BackColor = RGB(0, 0, 255)
If State = 1 Then Picture1.BackColor = RGB(255, 255, 255)
Picture1.Refresh
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) Visual Basic : ImageListの画像がそろったときにメッセージを表示 1 2023/07/20 13:53
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像の90度回転表示の処理時間...
-
SCALEの使い方教えてください
-
C言語のOpenGLで複数のテクスチ...
-
ピクチャボックスの使用方法
-
VB6 ドラッグ&ドロップ
-
ホンテットマンションに乗った...
-
ボールが壁に当たって跳ね返る...
-
[vb.net] 起動したFrom2を閉じ...
-
VBA public変数はどのようなこ...
-
C#のループでtextboxに値を入れ...
-
C言語のサフィックスについて
-
VBAで入力数値について
-
String型の値にスラッシュをつ...
-
VB.NETでのイベントの途中終了
-
エクセルVBAでテキストボッ...
-
texで図と表を並べたい
-
VBAでcallで呼び出したsubを終...
-
VB6.0の正規表現を使って、文字...
-
プロシージャまたは関数の引数...
-
comboboxのクリックイベントに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マウスポインタの変更
-
Matlabでsin波を使って矩形波を...
-
SavePictureで保存できない
-
FlexGridで文字色を変更。
-
(VB)ピクチャボックスに表示し...
-
ボールが壁に当たって跳ね返る...
-
画像処理について。(移動)
-
画像処理
-
VBによる回帰直線のプログラム
-
画像をランダムに表示させたい...
-
VBでbmpのビットを抜出す
-
SCALEの使い方教えてください
-
Matlab/SimulinkのChirp信号に...
-
PictureBoxでのアニメーション...
-
画像ファイルの高さと幅の取得
-
リソースファイルの選択
-
Picture box の サイズを変更
-
picture boxの画像をimageに上...
-
消す軌跡と残す軌跡
-
C言語のOpenGLで複数のテクスチ...
おすすめ情報