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ランキング
-
PictureBoxでのアニメーション...
-
VB6でマウスのドラッグで範囲を...
-
パーソナルXLSBのfuctionを呼び...
-
三項でたとえば交換って
-
テキストボックスかラベル上の...
-
sublimit textっていうエディタ...
-
ユーザーフォームへのデータ入...
-
プログラムの素朴な質問です 分...
-
Verilog-HDLによる設計において
-
【VBScript】変数のスコープ
-
C#のループでtextboxに値を入れ...
-
String型の値にスラッシュをつ...
-
[Excel2000]auto_closeを止めさ...
-
他のフォームから別のフォーム...
-
日付の重複
-
複数条件のオートフィルタ(VBA)
-
レコードセットにnullの場合
-
VBAでcallで呼び出したsubを終...
-
【VB6.0】 あるフォームから他...
-
VBでローマ字入力とかな入力を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SavePictureで保存できない
-
ボールが壁に当たって跳ね返る...
-
Matlabでsin波を使って矩形波を...
-
PictureBoxでのアニメーション...
-
Matlab/SimulinkのChirp信号に...
-
FlexGridで文字色を変更。
-
ピッ、ってアルファベットでど...
-
プログレスバーに似たコントロ...
-
SCALEの使い方教えてください
-
(VB)ピクチャボックスに表示し...
-
Picture box の サイズを変更
-
画像をランダムに表示させたい...
-
C言語のOpenGLで複数のテクスチ...
-
ピクチャーボックスの画像を印...
-
ペイントソフトの作成方法
-
VBによる回帰直線のプログラム
-
画像処理
-
文字間の幅の設定
-
三項でたとえば交換って
-
VBA public変数はどのようなこ...
おすすめ情報