
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MSDOS(バッチファイル)でプロセ...
-
VBAでOutlookを終了させたい Ex...
-
ACCESSで設定した帳票の用紙サ...
-
Windows PowerShellでC言語を実...
-
意味不明の実行時エラーで困っ...
-
ビルドが実行できない 先へ進...
-
vba 時間の引き算 例えば 15:00...
-
C++Builder5で画像データを用紙...
-
VB.NET(2017)で インストーラを...
-
印刷ダイアログを表示させない方法
-
印刷画面が表示されない
-
VBAで印刷の成功判定
-
画面を表示せずに印刷
-
発行元:不明???
-
androidで.exeを実行できますか?
-
PHPでPDFファイルの直接印刷
-
IT初心者です 仕事で、vb.netで...
-
VBのtextboxでの印刷枚数設定
-
fortran 作図
-
C#VB、exeに埋め込んだexeの実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでOutlookを終了させたい Ex...
-
VBSで起動したアプリが前面表示...
-
VBSから別のVBS起動するとき変...
-
アウトルックが起動しているか...
-
Process.Startで起動したアプリ...
-
Windows上のプログラム。「予め...
-
VBで実行中のEXEファイルの情報...
-
exeファイルを実行するとすぐに...
-
ACCESS VBAで別のACCESS(mdb)を...
-
WinSCPで画像のように puttyを...
-
VBAでSeleniumからChromeを起動...
-
フォームの最前面が効かない
-
VB6で呼び出し元の情報を取得す...
-
同じIEのウィンドウで、リンク...
-
gccプログラムで複数の実行ファ...
-
アプリからVB(Form)
-
VBSでExcelのUserFormをエクス...
-
VBからExcelに書き込む方法
-
Notepad起動のイベントでEXC...
-
C# 他のアプリケーションを優先...
おすすめ情報