
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ランキング
-
VBAでIEが起動しているか...
-
CreateProcessのエラー
-
exeファイルを実行するとすぐに...
-
VBAでOutlookを終了させたい Ex...
-
wshで既に立ち上がっているアプ...
-
宛先ナシでメールソフトを起動...
-
アウトルックが起動しているか...
-
フォームの最前面が効かない
-
VBからExcelに書き込む方法
-
VBSで起動したアプリが前面表示...
-
VBSから別のVBS起動するとき変...
-
タスクスケジューラでPerlが動...
-
VBAでArrayListを使う為の「msc...
-
vbaでPDFファイルが印刷されない
-
意味不明の実行時エラーで困っ...
-
Designer.vbは直接コードをいじ...
-
オブジェクト(dll)のレジストリ...
-
VB.NETでSPREADの設定方法
-
VBAでコマンドプロンプトを呼び...
-
印刷ダイアログを表示させたくない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでOutlookを終了させたい Ex...
-
アウトルックが起動しているか...
-
Windows上のプログラム。「予め...
-
フォームの最前面が効かない
-
VBAでIEが起動しているか...
-
VBSから別のVBS起動するとき変...
-
exeファイルを実行するとすぐに...
-
VBSでExcelのUserFormをエクス...
-
VB6からエクセルの印刷機能...
-
VBSで起動したアプリが前面表示...
-
VBAでSeleniumからChromeを起動...
-
ウィンドウを終了させたい・・・
-
C# 他のアプリケーションを優先...
-
ACCESS VBAで別のACCESS(mdb)を...
-
別のクラスからのタイマの起動方法
-
htmlからcgiを自動的に起動させ...
-
VBで実行中のEXEファイルの情報...
-
【プログラミング】HTAが想定通...
-
gccプログラムで複数の実行ファ...
-
mscomm32.ocxの登録方法
おすすめ情報