VB.NETにてDrag&Dropでbmpファイルをピクチャーボックスに
表示させようと思い、こちらで他の方が質問されていた
ソースを加工してテストしています。
画像ファイルをexplolerで掴んでピクチャーボックスの
上まで持ってくるとDragEnterイベントでアクセサリの
ペイントが起動してしまってそこで処理が止まってしまっています。
ブレークポイントを置いてみると
e.Data.GetDataPresentで起動してるようです。
ペイントが起動しないようにしたいのですが
どうすればいいのでしょうか?
どなたかよろしければご教授お願いいたします。
使用ツール:VS2005
OS:WinXpSP2
使用しているソース:
Private Sub pict1_DragEnter(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.DragEventArgs) Handles picturebox1.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
End If
End Sub
No.1ベストアンサー
- 回答日時:
投稿されたコードだけでは、どこで何をされているのか判断できません。
取り敢えず、下記のコードを試して見て下さい。
(エラーチェック等はご自分でつけて下さい。)
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox1.AllowDrop = True
End Sub
Private Sub PictureBox1_DragDrop(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragDrop
Dim fileNames() As String = DirectCast(e.Data.GetData(DataFormats.FileDrop, False), String())
With PictureBox1
.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
.Image = System.Drawing.Image.FromFile(fileNames(0))
End With
End Sub
Private Sub PictureBox1_DragEnter(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
End Class
ご回答ありがとうございます。
上記ソースでうまくPictureBoxに画像を表示できるとともに
まだ、ペイントが起動してしまいましたが、原因がわかりました。
こちらのデバッグの仕方に問題がありました。
値がどうなるかブレークポイントをつけていたのですが
このときデバッグで表示したウインドウの下にVSで
コードを表示させていました。
そのためEnterでイベントが発生し、ブレークポイントが
あるためVSのウインドウがアクティブになり、画像をVSで
開こうとしてペイントが動いてました。
たまたまずらして実行したときにペイントが起動しないことで
気づくことができました。
お騒がせしました。ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) Visual Basic : ImageListの画像がそろったときにメッセージを表示 1 2023/07/20 13:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
分かる人は簡単なのだろうが、v...
-
VBAでOutlookを終了させたい Ex...
-
アウトルックが起動しているか...
-
VBSから別のVBS起動するとき変...
-
VBSで起動したアプリが前面表示...
-
Windows上のプログラム。「予め...
-
WinSCPで画像のように puttyを...
-
VBSでExcelのUserFormをエクス...
-
CreateProcessのエラー
-
プログラムからのブラウザ立ち上げ
-
QueryPerformanceCounter の使...
-
64bitで作ったEXEを32bitで起動...
-
宛先ナシでメールソフトを起動...
-
VC++にて_spawnlpでプロセス起動
-
VBからExcelに書き込む方法
-
exeファイルを実行するとすぐに...
-
"ctrl" + "f" を、ボタンを押し...
-
ACCESS VBAで別のACCESS(mdb)を...
-
VBAでIEが起動しているか...
-
VBで実行中のEXEファイルの情報...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アウトルックが起動しているか...
-
WinSCPで画像のように puttyを...
-
VBSから別のVBS起動するとき変...
-
Windows上のプログラム。「予め...
-
VBAでOutlookを終了させたい Ex...
-
VBで実行中のEXEファイルの情報...
-
VBSで起動したアプリが前面表示...
-
Process.Startで起動したアプリ...
-
EXCEL VBAから他アプリケーショ...
-
64bitで作ったEXEを32bitで起動...
-
exeファイルを実行するとすぐに...
-
リムーバブルディスクのフォー...
-
VB6で呼び出し元の情報を取得す...
-
VBAでIEが起動しているか...
-
フォームの最前面が効かない
-
VBAでSeleniumからChromeを起動...
-
エクセル起動時別プロセスで開く
-
VBSでExcelのUserFormをエクス...
-
ACCESS VBAで別のACCESS(mdb)を...
-
別アプリの起動、終了について
おすすめ情報