18 Mart 2013 Pazartesi
LİSTVEW ve DİZİ İLE PERSONEL PROGRAM ÖRNEĞİ
ListView Ve Dizi ile ilgili bir VB.NET 2010 Örneği
KODİ NDİR
18.03.2013
Imports System.Xml Imports System.IO Imports System Imports System.Text Public Class Form1 Public eleman As ListViewItem 'Global değişkenler tanımlanıyor. Structure personel Dim Ad As String Dim Meslek As String Dim BabaAdi As String Dim DogumYeri As String Dim Bolum As String End Structure Dim Pers() As personel 'diziyi dinamik olarak tanımla Dim dizi_boyutu As Integer 'En son tanımlanan dizinin boyutu Dim eleman_say As Integer Private Sub Form1_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed SaklaBtn.PerformClick() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load dizi_boyutu = 10 'Formun yüklenmseinde (Load olayı) Başlangıçta on elemanlı bir dizi eleman_say = 0 ' Dizideki aktif elemanın sayısı ReDim Pers(dizi_boyutu) 'Dizi 10 elemanlı olarak yeniden tanımlandı Label8.Text = eleman_say Label9.Text = dizi_boyutu Call ListeYukle() End Sub Private Sub ListeYukle() On Error Resume Next LW1.Items.Clear() Dim XMLoku As New XmlTextReader(My.Application.Info.DirectoryPath & "\" & My.Settings.XmlFileName) XMLoku.MoveToContent() Dim ElementName As String = "" Dim NextItem As Boolean = True Dim objListViewItem As ListViewItem = Nothing Do While XMLoku.Read If NextItem Then objListViewItem = New ListViewItem NextItem = False End If Select Case XMLoku.NodeType Case XmlNodeType.Element ElementName = XMLoku.Name Case XmlNodeType.Text If ElementName = "PersonelAdı" Then objListViewItem.Text = XMLoku.Value End If If ElementName = "Mesleği" Then objListViewItem.SubItems.Add(XMLoku.Value) LW1.Items.Add(objListViewItem) End If If ElementName = "BabaAdı" Then objListViewItem.SubItems.Add(XMLoku.Value) LW1.Items.Add(objListViewItem) End If If ElementName = "DoğumYeri" Then objListViewItem.SubItems.Add(XMLoku.Value) LW1.Items.Add(objListViewItem) End If If ElementName = "Bölüm" Then objListViewItem.SubItems.Add(XMLoku.Value) LW1.Items.Add(objListViewItem) NextItem = True End If End Select Loop XMLoku.Close() End Sub Private Sub SaklaBtn_Click(sender As System.Object, e As System.EventArgs) Handles SaklaBtn.Click Dim XMLyaz As New XmlTextWriter(Application.StartupPath & My.Settings.XmlFileName, System.Text.Encoding.UTF8) 'Dim XMLyaz As New XmlTextWriter(My.Application.Info.DirectoryPath & "\" & My.Settings.XmlFileName, System.Text.Encoding.UTF8) With XMLyaz .Formatting = Formatting.Indented .WriteStartDocument() .WriteStartElement("Personel") Dim ListViewNesnesi As New ListViewItem For Each ListViewNesnesi In LW1.Items .WriteStartElement("Personel") .WriteElementString("PersonelAdı", ListViewNesnesi.Text) .WriteElementString("Mesleği", ListViewNesnesi.SubItems(1).Text) .WriteElementString("BabaAdı", ListViewNesnesi.SubItems(2).Text) .WriteElementString("DoğumYeri", ListViewNesnesi.SubItems(3).Text) .WriteElementString("Bölüm", ListViewNesnesi.SubItems(4).Text) .WriteEndElement() Next .WriteEndElement() .WriteEndDocument() .Flush() .Close() End With SaklaBtn.Enabled = False End Sub Public Sub GirişleriSil() TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" Label9.Text = "" End Sub Private Sub EkleBtn_Click(sender As System.Object, e As System.EventArgs) Handles EkleBtn.Click Dim i 'Dizi boyutları büyüdükçe yeniden tanımlama işlemi uzun sürer. Bunun için diziye her 'yeni eleman eklendiğinde dizinin boyutunu arttırmak yerine If dizi_boyutu = eleman_say Then 'dizi dolduysa dizi_boyutu = dizi_boyutu + 10 'Diziye 10 eleman daha ekle ReDim Preserve Pers(dizi_boyutu) Label9.Text = dizi_boyutu MsgBox("Dizinin Boyutu Artırılacak: " & dizi_boyutu) End If i = eleman_say 'Text kutularının içeriklerini diziye ata Pers(i).Ad = TextBox1.Text Pers(i).Meslek = TextBox2.Text Pers(i).BabaAdi = TextBox3.Text Pers(i).DogumYeri = TextBox4.Text Pers(i).Bolum = TextBox5.Text eleman_say = eleman_say + 1 Label8.Text = eleman_say Label9.Text = dizi_boyutu Dim item As New ListViewItem item.Text = Pers(i).Ad item.SubItems.Add(Pers(i).Meslek) item.SubItems.Add(Pers(i).BabaAdi) item.SubItems.Add(Pers(i).DogumYeri) item.SubItems.Add(Pers(i).Bolum) 'son eklenenin seçildiği yer. Me.LW1.Items.Add(item) Me.LW1.Items(Me.LW1.Items.Count - 1).Selected = True Me.LW1.Sorting = SortOrder.Ascending 'indexi bulunduktan sonra liste sıralanı LW1.Items(LW1.Items.Count - 1).EnsureVisible() 'Eklenen görünür alanda değilse gösterilir Me.LW1.Focus() 'seçimin görünür olması için SaklaBtn.Enabled = True End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click dizi_boyutu = 10 'Formun yüklenmseinde (Load olayı) Başlangıçta on elemanlı bir dizi eleman_say = 0 ' Dizideki aktif elemanın sayısı ReDim Pers(dizi_boyutu) 'Dizi 10 elemanlı olarak yeniden tanımlandı Label8.Text = eleman_say Label9.Text = dizi_boyutu Call ListeYukle() End Sub Private Sub LW1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles LW1.KeyDown If e.KeyCode = Keys.Delete Then SilBtn.PerformClick() End If If e.KeyCode = Keys.Escape Then Me.Close() End If End Sub Private Sub SilBtn_Click(sender As System.Object, e As System.EventArgs) Handles SilBtn.Click On Error Resume Next Dim indexes As ListView.SelectedIndexCollection = LW1.SelectedIndices Dim index As Integer For Each index In indexes LW1.Items.RemoveAt(index) Next If index = 0 Then index = 0 index = index - 1 If index = -1 Then index = 0 eleman = LW1.Items(index) eleman.Selected = True LW1.Focus() SaklaBtn.Enabled = True End Sub Private Sub LW1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles LW1.SelectedIndexChanged Dim sayi As Integer = LW1.Items.Count Dim eleman As ListViewItem For i As Integer = 0 To sayi - 1 eleman = LW1.Items(i) If eleman.Selected Then SecilenIndex.Text = i LblKayıtSayısı.Text = "(" & sayi & " Kayıt sayısı)" LblSeçilenSatır.Text = "(" & i + 1 & " .Satır seçili)" End If Next SaklaBtn.Enabled = True End Sub End Class
Sonraki Kayıt
Önceki Kayıt
Ana Sayfa