- ベストアンサー
VB.NETのDrag&Dropでペイントが起動してしまう
- VB.NETにてDrag&Dropでbmpファイルをピクチャーボックスに表示させようと思い、他の方が質問されていたソースを加工してテストしています。
- 画像ファイルをexplorerで掴んでピクチャーボックスの上まで持ってくるとDragEnterイベントでアクセサリのペイントが起動してしまって処理が止まっています。
- ペイントが起動しないようにする方法を教えていただきたいです。
- みんなの回答 (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で 開こうとしてペイントが動いてました。 たまたまずらして実行したときにペイントが起動しないことで 気づくことができました。 お騒がせしました。ありがとうございました!