VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 PictureBox 関係のメニュー
1.PictureBox コントロールに関するワンポイントテクニック集
2.FileStream を使ったロックされない画像表示
3.画像ファイルをドラッグ・アンド・ドロップで PictureBox 上に表示
4. 
5. 
6.
7.
8. 
9. 
10. 
11.
12.
 . 
20.その他、当サイト内に掲載の PictureBox に関するサンプル


3.画像ファイルをドラッグ・アンド・ドロップで PictureBox 上に表示(21_Pic_03) (旧、SampleNo.360、461)
1.画像ファイルをドラッグ・アンド・ドロップで PictureBox 上に表示
2.
3.
4.
5.
6.
こちらのサンプルは、PictureBox コントロールに関するプロパティやメソッドを使った、画像の表示方法や PictureBox に表示した画像の保存方法等を主体にしたサンプルを紹介しております。
画像の描画及び加工が主体となるようなサンプルは、描画・画像関係の方に掲載しておりますので、そちらも合わせてご覧下さい。
 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :追加なし
参照設定:
追加なし
その他 :
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.画像ファイルをドラッグ・アンド・ドロップで PictureBox 上に表示

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'ドラッグ・アンド・ドロップ操作を有効
    PictureBox1.AllowDrop = True        '1.用
    PictureBox2.AllowDrop = True        '2.用
End Sub


#Region "1.エクスプローラーから画像ファイルをドラッグしてPictureBox1上に表示する関係のコード"

Private Sub PictureBox1_DragDrop(sender As Object, e As DragEventArgs) Handles PictureBox1.DragDrop
'ドラッグしてきた、ファイル名を取得
    Dim fileNames() As String = DirectCast(e.Data.GetData(DataFormats.FileDrop, False), String())
    '取得したファイルのパスを元にピクチャーボックスに画像を表示
    With PictureBox1
        .SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
        '既に画像が表示されていたら入れ替えて表示し、でなければ新規に表示する
        Call sChangeImage(PictureBox1, System.Drawing.Image.FromFile(fileNames(0)))
        '.Image = System.Drawing.Image.FromFile(fileNames(0))
    End With
End Sub

Private Sub PictureBox1_DragEnter(sender As Object, e As 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 Region


#Region "2.PictureBox1 上の画像をドラッグ&ドロップで PictureBox2 上に表示用コード"

Private MouseIsDown As Boolean = False
Private Sub PictureBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseDown
    If Not PictureBox1.Image Is Nothing Then     'P2
        MouseIsDown = True
    End If
End Sub

Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove
    If MouseIsDown Then                    'P2
        PictureBox1.DoDragDrop(PictureBox1.Image, DragDropEffects.Copy Or DragDropEffects.Move)   'P2
    End If
    MouseIsDown = False                    'P2
End Sub

Private Sub PictureBox2_DragDrop(sender As Object, e As DragEventArgs) Handles PictureBox2.DragDrop
    With PictureBox2
        .SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
        '既に画像が表示されていたら入れ替えて表示し、でなければ新規に表示する
        Call sChangeImage(PictureBox2, CType(e.Data.GetData(DataFormats.Bitmap), Image))
    End With
End Sub

Private Sub PictureBox2_DragEnter(sender As Object, e As DragEventArgs) Handles PictureBox2.DragEnter
    If e.Data.GetDataPresent(DataFormats.Bitmap) Then   'P2
        If e.KeyState = 9 Then                          'P2
            e.Effect = DragDropEffects.Copy             'P2
        Else                                            'P2            
            e.Effect = DragDropEffects.Move             'P2
        End If
    Else
        e.Effect = DragDropEffects.None                 'P2
    End If
End Sub

#End Region


#Region "3.PictureBox2 上の画像をドラッグ&ドロップで Excel 等上に表示用コード"

'PictureBox 上の画像をドラッグ&ドロップで Excel 等上に表示するだけなら下記のコードだけで OK です。
Private Sub PictureBox2_MouseDown(sender As Object, e As MouseEventArgs) Handles PictureBox2.MouseDown
    PictureBox2.DoDragDrop(PictureBox2.Image, DragDropEffects.All)
End Sub

#End Region

このページのトップへ移動します。 2.


このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5. 



このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
ピクチャーボックス




このページのトップへ移動します。