Skip to main content

AccessTr.neT


ListView1 Listeleme Hakkında

ListView1 Listeleme Hakkında

#4
Normalde bir konuda birden fazla soru olduğu zaman cevap vermem ancak sizi az çok bilip suistimal etmeyeceğinizi düşünerek cevaplıyorum.

Öncelikle bir prosedür oluşturuyorum:
Sub KlasorleriListele()

       Dim satir As Integer
       Dim sarkiBaslangic, klasorBaslangic, sarkiAdiUzunlugu As Integer
       Dim sarkiAdi, klasorAdi As String

       Dim FilesInDir As String() = Directory.GetFiles(Application.StartupPath & "\REPERTUARX\", "*.txt", SearchOption.AllDirectories)
       Dim SFile As String
       ListView1.Items.Clear()

       For Each SFile In FilesInDir
           sarkiBaslangic = SFile.LastIndexOf("\") + 2
           sarkiAdi = Mid(SFile, sarkiBaslangic)
           sarkiAdiUzunlugu = Len(SFile) - sarkiBaslangic + 2

           klasorBaslangic = SFile.IndexOf("X\") + 3
           klasorAdi = Mid(SFile, klasorBaslangic, (Len(SFile) - sarkiAdiUzunlugu + 1) - klasorBaslangic)

           ListView1.Items.Add(klasorAdi)
           ListView1.Items(satir).SubItems.Add(sarkiAdi)
           satir += 1
       Next
   End Sub

Listview'de sağ üst köşedeki üçgen kulakçık menüsünde Edit Columns tıklayın. Add butonuna tıklayıp yeni bir sütun ekleyin. Ben genişliklerini 100 ve 200 yaptım.

Yukarıdaki KlasorleriListele prosedürü tek başına çalışamaz. Bundan dolayı Formun Load yani Yüklendiğinde olayında ve butonun tıklanma olayında bu prosedürü çalıştırıyoruz:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

       KlasorleriListele()
   End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        KlasorleriListele()
    End Sub

Bu şekilde yapılacak olursa yukarıdaki kodlar ile listeleme işlemleri yapılabilir. Gelelim TXT dosyaların içeriğinin RichTextBox ta gösterilmesine.

Öncelikle yeni bir prosedür ekliyoruz:

Sub DosyaIceriginiOku(ByVal dosyaAdresi As String)


       Try
           Using sr As New StreamReader(dosyaAdresi, System.Text.Encoding.Default)
               Dim dosyaIcerigi As String
               dosyaIcerigi = sr.ReadToEnd()
               RichTextBox1.Text = dosyaIcerigi
           End Using
       Catch e As Exception
           MsgBox("Dosya içeriği okunamadı :" & vbCrLf & vbCrLf & e.Message)
       End Try

   End Sub

Bu prosedür öncekinden farklı olarak bir parametre alacak. Bu parametreye içeriğini görüntülemek istediğimiz TXT dosyasının adresini göndereceğiz. Ona sonra geliriz şimdi prosedürü incelemeye devam edelim.

Try-Catch kaçınılmaz olarak kullanılmalıdır yoksa programda kırılmaya sebebiyet verecek hatalar alabilirsiniz.

StreamReader da ikinci parametre olarak System.Text.Encoding.Default kullanmazsanız dosya içeriğini gösterirken Türkçe karakterler yerine garip karakterler çıkacaktır.

Gelelim bu prosedüre gönderilecek dosya adresini nasıl alacağımıza. Listview'in özelliklerinden FullRowSelect özelliğini True yapıyoruz. Listview üzerinde tıklama işleminde eğer tıklanılan satırın Index değeri değişirse tıklanan satırdaki klasör ve şarkı isimlerini kullarak Txt dosyası adresini prosedüre parametre olarak gönderiyoruz:

Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged

       DosyaIceriginiOku(Application.StartupPath & "\REPERTUARX\" & ListView1.Items(ListView1.FocusedItem.Index).SubItems(0).Text & "\" & ListView1.Items(ListView1.FocusedItem.Index).SubItems(1).Text)
   End Sub

[Resim: do.php?img=4869]
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
ListView1 Listeleme Hakkında - Yazar: drummers - 20/05/2015, 13:45
Cvp: ListView1 Listeleme Hakkında - Yazar: alpeki99 - 20/05/2015, 14:48
Cvp: ListView1 Listeleme Hakkında - Yazar: drummers - 20/05/2015, 15:26
Cvp: ListView1 Listeleme Hakkında - Yazar: alpeki99 - 21/05/2015, 10:08
Cvp: ListView1 Listeleme Hakkında - Yazar: drummers - 21/05/2015, 10:31
Cvp: ListView1 Listeleme Hakkında - Yazar: alpeki99 - 21/05/2015, 11:29
Cvp: ListView1 Listeleme Hakkında - Yazar: drummers - 23/05/2015, 11:51
Cvp: ListView1 Listeleme Hakkında - Yazar: alpeki99 - 23/05/2015, 12:45
Task