thongkorn โพสต์ 2023-7-24 12:11:54

[VB.NET] การใช้ ListView Control เพื่อทำการแสดงผลไฟล์ภาพ

การใช้ ListView Control เพื่อทำการแสดงผลไฟล์ภาพ (JPG, BMP, PNG, GIF)

http://www.g2gsoft.com/webboard/images/VBNet/ListViewImage.png

มาดูโค้ดฉบับเต็มกันเถอะ ... Imports System.IO

Public Class frmListViewImage

    Dim strPath As String = Application.StartupPath.ToLower.Replace("bin\debug", "").Replace("bin\release", "") & "Images\"

    Private Sub btnFolderBrowse_Click(sender As System.Object, e As System.EventArgs) Handles btnFolderBrowse.Click
      Dim dlgFolderBrowse As New FolderBrowserDialog
      dlgFolderBrowse.SelectedPath = strPath
      If dlgFolderBrowse.ShowDialog() = Windows.Forms.DialogResult.Cancel Then Exit Sub
      '//
      If Microsoft.VisualBasic.Right(dlgFolderBrowse.SelectedPath, 1) <> "\" Then _
            dlgFolderBrowse.SelectedPath = dlgFolderBrowse.SelectedPath & "\"
      strPath = dlgFolderBrowse.SelectedPath
      '// Create ImageList dynamically.
      Dim img As New ImageList
      With img
            .ImageSize = New Point(128, 128)
            .ColorDepth = ColorDepth.Depth32Bit
      End With
      '//
      Dim itemFolder As New List(Of ListViewItem)
      For Each imgFile In Directory.GetFiles(dlgFolderBrowse.SelectedPath.ToString())
            If imgFile.Contains(".png") Or imgFile.Contains(".jpg") Or imgFile.Contains(".bmp") Or imgFile.Contains(".gif") Then
                img.Images.Add(Image.FromFile(imgFile))
                itemFolder.Add(New ListViewItem(Path.GetFileName(imgFile)) With {.ImageIndex = img.Images.Count - 1})
            End If
      Next
      With ListView1
            .Items.Clear()
            .View = View.LargeIcon
            .LargeImageList = img
            .Items.AddRange(itemFolder.ToArray())
      End With
    End Sub

    Private Sub frmListViewImage_Load(sender As Object, e As System.EventArgs) Handles Me.Load
      Label1.Text = ""
      With PictureBox1
            .SizeMode = PictureBoxSizeMode.StretchImage
            .Image = Image.FromFile(strPath & "people.png") '\\ Initialize to show sample image.
      End With
    End Sub

    Private Sub ListView1_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseClick
      Dim item As ListViewItem = ListView1.HitTest(e.Location).Item
      If item IsNot Nothing Then
            Me.PictureBox1.Image = Image.FromFile(strPath & item.Text)
            Label1.Text = "Image : " & strPath & item.Text
      End If
    End Sub

    Private Sub ListView1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ListView1.SelectedIndexChanged
      'For Each item As ListViewItem In ListView1.SelectedItems
      'MessageBox.Show(item.Text)
      'Next
    End Sub

    Private Sub btnExit_Click(sender As System.Object, e As System.EventArgs) Handles btnExit.Click
      Me.Close()
    End Sub

    Private Sub frmListViewImage_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
      Me.Dispose()
      GC.SuppressFinalize(Me)
      Application.Exit()
    End Sub

End Class


ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่ ...



หน้า: [1]
ดูในรูปแบบกติ: [VB.NET] การใช้ ListView Control เพื่อทำการแสดงผลไฟล์ภาพ