VisualBasic2008を使い、画像のドラッグ&ドロップをしたい
まだVB2008の勉強を始めたばかりの初心者です。
PictureBox1~PictureBox4に表示されている画像をドラッグ&ドロップでPictureBox5にコピーして表示させたいのですが、どのようなプログラムにすればいいのかが分かりません。
PictureBox5には何度でもPictureBox1~PictureBox4の画像をドラッグ&ドロップで入れ替えができ、PictureBox1~PictureBox4の画像はそのままになるようにしたいです。
よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
PictureBoxのAllowDropプロパティを Trueにすれば D&D(ドラッグ&ドロップ)が可能になります
D&Dを行うには 元のPictureBox1-4のMouseDownイベントで DoDragDropを使えば実行できるでしょう
' 送り手側
private Sub PictureBox_MouseDown(ByVal s as Object, byVal e as MouseEventArgs) _
Handler PictureBox1.MouseDown, PictureBox2.MouseDown,
PictureBox3.MouseDown, PictureBox4.MouseDown
Dim oPic as PictureBox = CType(s, PictureBox )
' 受け側のD&Dを許可
PictureBox5.AllowDrop = True
' D&Dを実行
oPic.DoDragDrop( oPic.Image, DragDropEffect.Copy )
End Sub
' 受けて側
Private Sub PictureBox5_DragEnter( s as Object, ByVal e as DragEventArgs )
' もしD&Dのデータがビットマップなら
if e.Data.GetDataPresent("Bitmap") then
' カーソルを変更
e.Effect = DragDropEffect.Copy
else
' カーソルを禁止マークに
e.Effect = DragDropEffect.None
end if
End Sub
Private Sub PIctureBox5_DragDrop( s as Object, ByVal e as DragEventArgs )
' もしD&Dのデータがビットマップなら
if e.Data.GetDataPresent("Bitmap") then
PictureBox5.Image = e.Data.GetData("Bitmap")
end if
End Sub
といった具合で出来そうです
エラー処理を何もしていませんの必要な箇所の修正をしましょう
字下げ(インデント)には全角スペースを使っていますので エラーになるようでしたら置換してください
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Illustrator(イラストレーター) プロパティパネルを元に戻せますか 3 2022/05/07 16:44
- Photoshop(フォトショップ) 【Photoshop】画像拡大時に急激に画面外まで拡大してしまうのを制御したい 1 2023/08/25 03:04
- Illustrator(イラストレーター) 添付画像の帽子マーク~Tは、既成のフォントに類似フォントがありますでしょうか 1 2022/08/17 20:51
- Chrome(クローム) サイトのショートカットアイコンの格納場所は? 1 2022/12/26 01:38
- フリーソフト アイコンとして保存アプリが不調 2 2022/04/16 06:39
- Visual Basic(VBA) Visual Basic : ImageListの画像がそろったときにメッセージを表示 1 2023/07/20 13:53
- Illustrator(イラストレーター) 「頂点で線分を伸ばす」作業がうまく行かない。 1 2022/09/09 10:19
- その他(ブラウザ) Mycrosoft Edge の「コレクション」に、画像とテキストを追加したい 2 2022/05/28 11:10
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- バックアップ パソコンからDVDへコピー 5 2022/08/18 14:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
エクセルVBA 「On Error GoTo...
-
インポート時のエラー「データ...
-
VBでSQL文のUPDATE構文を使った...
-
マクロの「SaveAs」でエラーが...
-
「実行時エラー '3167' レコー...
-
実行時エラー'-2147467259(8000...
-
UBoundに配列がありませんとエ...
-
Excel vbaについての質問
-
On ErrorでエラーNoが0
-
VB.net 重複チェックがしたいです
-
【VB.NET】 パワポ操作を非表示で
-
実行時エラー '8021'とはどんな...
-
VBAのリストボックスで、横スク...
-
ASPでこんなエラーが出たんです...
-
VB6とVB.NETでNullの扱いが違う?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
On ErrorでエラーNoが0
-
VBAでfunctionを利用しようとし...
-
マクロで"#N/A"のエラー行を削...
-
VBA データ(特定値)のある最...
-
実行時エラー 438 の解決策をお...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
エクセルVBA 「On Error GoTo...
-
【VBA】ワークブックを開く時に...
-
マクロの「SaveAs」でエラーが...
-
ACCESSで値を代入できないとは?
-
実行時エラー'-2147467259(8000...
-
インポート時のエラー「データ...
-
【VB.NET】 パワポ操作を非表示で
-
Filter関数を用いた結果、何も...
-
UBoundに配列がありませんとエ...
-
Excel vbaについての質問
-
メールの件名のセットでエラー...
おすすめ情報