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. |
検索キーワード及びサンプルコードの別名(機能名) |
ピクチャーボックス |