C# listview kullanımı ve özellikleri konusunda detaylı bilgi sahibi olmak için makalemizi inceleyebilir veya SendeKodYaz YouTube kanalımızdaki konu ile ilgili eğitim videolarını izleyebilirsiniz.

 

 

C# ListView Kullanımı

Birbiri ile ilişkili kayıtların listelenmesi sağlayan görsel öğedir. Programcı tarafından sütunlara göre bilgiler kategorilere ayrılarak düzenli bir şekilde listelenir. Örneğin; TC Kimlik No, Adı, Soyadı, Adresi, Telefon No gibi sütunlara ayrılan bir Listview nesnesinde kayıtlar düzenli halde listelenebilir. Listview nesnesinde listelenen kayıtlardan bir yada bir kaçının seçilmesi, silinmesi veya güncellenmesi sağlanabilir. C# listview kullanımına ilişkin gerçekleştireceğimiz kapsamlı örneği aşağıdaki görselde görmektesiniz.

C# ListView Kullanımı
C# ListView Kullanımı

C# Listview Kullanımı ve Özellikleri

BackColor (Arka Plan Rengi): Listview nesnesinin arka plan rengidir.

ForeColor (Yazı Rengi): Listview nesnesinde listelenen kayıtların yazı rengidir.

GridLines (Izgara Çizgileri): Satır ve sütunların birbirinden ayıran ızgara çizgileri eklenmesini sağlar. Varsayılan değeri false olan bu özellik true olarak değiştirildiğinde ızgara çizgileri ListView nesnesine eklenir.

BackgroundImage (Arka Plan Resmi): Listview nesnesine arka plan resmi eklenmesini sağlar.

BackgroundImageTiled: True (doğru) ve False (yanlış) değerleri alan bu özellik, Listview nesnesinin arka plan resminin boyuta göre tekrarlanıp tekrarlanmayacağını belirler. Örneğin; küçük boyutlu bir resim kendisinden büyük boyuttaki bir Listview nesnesinin arka plan resminde görüntülenmek istenirse, bu özellik true yapılarak resmin boyuta göre tekrarlanması sağlanır.

C# Listview BackgroundImageTiled Özelliği
C# Listview BackgroundImageTiled Özelliği

AllowColumnReorder: Allow izin vermek, Column sütun ve Reorder yeniden düzenlemek anlamına gelir. Dolayısıyla bu özellik Sütunları Yeniden Düzenlemeye İzin Verme anlamına gelir. True ve false değerlerini alan bu özellik form yürütüldüğünde ListView nesnesindeki sütunların sırasının (yerlerinin) kullanıcı tarafından değiştirilip değiştirilemeyeceğini belirler. Örneğin; aşağıdaki uygulamada kullanıcı ADI SOYADI sütununu birinci sıraya, TC KİMLİK NO sütunu ikinci sıraya alınmıştır.

C# Listview AllowColumnReorder
C# Listview AllowColumnReorder Özelliği

CheckBoxes: Listview nesnesine eklenen kayıtların sol kısmında CheckBox (İşaret Kutusu) görüntülenmesini sağlar. True ve false değerleri alan bu özelliğe true değeri atanırsa işaret kutuları görüntülenir. İşaret kutuları yardımı ile bir yada birden fazla kayıt üzerinde istenilen işlemler yapılabilir.

Columns: Listview nesnesine sütunların eklenmesini sağlar. Üç nokta ile simgelenen butona tıklanır ve açılan ekranda listview nesnesinin sütunları düzenlenir.

C# ListView Add Item Özelliği
C# ListView Add Item Özelliği

Enabled: Form yürütüldüğünde Listview nesnesi üzerinde işlem yapılmasını izin verilme durumunu belirler. Bu özellik true ise işlemlere izin verilir, false ise izin verilmez. Örneğin; enabled özelliği false olarak seçilmiş ise listview nesnesinden her hangi bir kayıt seçilemez, işaret kutularına erişilemez.

FullRowSelect (Satırın Tamamını Seçme): Normalde ListView nesnesinde görüntülenen kayıtlardan biri seçilmek istendiğinde, satırın tamamı değil ilk sütuna ait hücre seçilir. Varsayılan olarak false olan bu özellik true olarak değiştirildiğinde ise satırın tamamının seçilmesi sağlanır.

c# listview seçili satır
C# Listview Seçili Satır
C# ListView FullRowSelect
C# ListView FullRowSelect

HeaderStyle (Başlık Sitili): ListView nesnesinin başlık sitilinin ayarlanmasını sağlar.

  • None (Hiç): Başlık hiç görünmez.
  • Clickable (Tıklanabilir): Başlık üzerinde işlem yapılabilir. Örneğin; AllowColumnReorder özelliği true ise sütun yerleri kullanıcı tarafından değiştirilebilir.
  • Nonclickable (Hiç Tıklanamaz): Bu seçim yapılırsa başlık kısmında kullanıcı hiçbir işlem yapamaz.

Items (Öğeler): Listview nesnesine properties panelinden kayıt eklenmesini sağlar. Items özelliğinin yanında üç nokta ile simgelenen butona tıklanır. Açılan ekrandan Add butonuna tıklanarak Listview nesnesinin ilk kaydı eklenir ve Text özelliğine ilk sütun bilgisi yazılır. Daha sonra SubItems özelilğinin yanındaki butona tıklanır ve buradan Add butonu yardımı ile diğer sütunlara bilgiler yazılır.

C# ListView Item Ekleme
C# ListView Item Ekleme
C# ListView Kayıt Ekleme
C# ListView Kayıt Ekleme

MultiSelect (Çoklu Seçim): CTRL tuşu yardımı ile Listview nesnesinden listelenen kayıtlardan birden fazla kaydın seçilmesine olanak sağlayan özelliktir. Varsayılan değeri true olarak belirlenmiştir.

C# ListView Multiselect
C# ListView Multiselect

Scrollable (Kaydırılabilir): Kayıtlar form ekranına sığmadığında kaydırma çubuklarının görüntülenip görüntülenmeyeceğini belirten özelliktir. True değeri atandığında kaydırma çubukları görüntülenirken, false değeri atanırsa gizlenir.

Sorting (Sıralama): Kayıtların alfabetik olarak artan veya azalan şekilde sıralanmasını sağlar.

  • None (Hiç): Sıralama pasif durumdadır.
  • Ascending: Artan şekilde (A-Z) sıralama yapar.
  • Descending: Azalan şekilde (Z-A) sıralama yapar.

 View (Görünüm): LargeIcon, Details, SmallIcon, List ve Tile seçeneklerini içeren bu özellik Details olarak ayarlandığında ListView nesnesindeki kayıtlar ve başlık normal şekilde görüntülenir. Eğer ListView nesnesini farklı amaçlar için kullanacaksanız Details seçimini değiştirebilirsiniz, aksi takdirde bu özellik Details olarak seçilmelidir. Varsayılan olarak bu özellik LargeIcon olarak seçili gelmektedir, bu durumda da kayıtlar ListView nesnesinde görüntülenmemektedir. C# listview kullanımı esnasında view özelliğinin details olarak seçilmesi gerekmektedir.

 ÖNEMLİ NOT: C# listview kullanımı esnasında gerekli özelliklerin tümü Properties panelinden ayarlanabileceği gibi kod ile de ayarlanabilir.

listView1.BackColor = Color.Aqua;
listView1.ForeColor = Color.Blue;
listView1.Scrollable = true;
listView1.View = View.Details

C# Listview Örnekleri

C# ListView Örnekleri
C# ListView Örnekleri

ADIM 1: ListView1 nesnesinin sütun (Column) başlıklarının ve genişliklerinin ayarlanması, ComboBox1 (Mezuniyeti) nesnesinin öğelerinin belirlenmesi, kayitsayisi(yaz) fonksiyonunun (metodunun) yürütülmesi.

Form_Load Olayı Kodları 

ADIM 2: Formun yürütülmesi, yeni kayıt eklenmesi, kaydın silinmesi gibi durumlarda son durumdaki kayıt sayısı kullanıcıya yansıtılacaktır. Birden fazla olayda kayıtların listelenmesi gerekeceği için bu işlem metod kullanılarak yapılmış ve gereken yerlerde metod çağrılarak komutlar yürütülmüştür. Böylece kod kalabalığının önüne geçilerek programın okunurluğu kolaylaştırılmıştır.

kayitsayisiyaz() Metodu Kodları: :

ADIM 3: String türünde tc, yas, mezuniyet, cinsiyet, dogumyeri, telno isimli değişkenler tanımlanmıştır. Bu değişkenlerin değerleri textBox nesneleri ile comboBox nesnesinin Text özelliğinden alınmıştır. Cinsiyet değişkeni ise radioButton nesnelerinin durumuna göre değer almıştır. Değişkenlerin değerleri belirlendikten sonra string türündeki bilgiler dizisine aktarılmıştır.

ListView1 nesnesinin eleman sayısı kadar dönen bir for döngüsü tasarlanmıştır. Her kaydın 1. sütunu (TC KİMLİK NO) ile yeni kayıt için textBox1 nesnesine girilen veri karşılaştırılmıştır. Eğer aynı TC kimlik numarası ile daha önceden kayıt oluşturulmuş ise başlangıçta bool türünde false değeri verilen aranankayitkontrolü değişkeninin değeri true olarak değiştirilmiştir.

Eğer aynı kayda rastlanmamışsa, yani aranankayitkontrolü değişkeninin değeri false değerini korumuş ise; bu kez her hangi bir verinin boş bırakılıp bırakılmadığı kontrol edilmiştir. Tüm bilgiler forma tam olarak girilmiş ise yeni kaydın ListView1 nesnesine eklenmesi sağlanmıştır. Aksi takdirde kayıt bilgilerinde eksiklik olduğu bilgisi kullanıcıya aktarılmıştır. kayitsayisiyaz() metodu ile son kayıt sayısı bilgisi de forma yansıtılmıştır.

EKLE Butonu Kodları:

ADIM 4: İşaret kutuları yardımı ile seçilen eleman sayısı listView1.CheckedItems.Count yöntemi ile hesaplanarak secilensayisi isimli değişkende saklanmıştır. Foreach döngüsünün ListView1 nesnesinde işaret kutuları ile seçilen öğe sayısı kadar dönmesi sağlanmıştır. İşaret kutusu ile seçilen her kayda ait bilgiler secilikayitbilgisi isimli ListViewItem öğesinde (değişkeninde) saklanmıştır. Her döngüde sırası ile Remove() yöntemi ile seçili kayıtların silinmesi sağlanmıştır. Kaç adet kaydın silindiği kullanıcıya bildirilmiş ve son kayıt sayısı bilgisi forma yansıtılmıştır.

SİL (CHECKBOX) Butonu Kodları:

ADIM 5: Adım 4’deki aşamalardan farklı olarak listView1.CheckedItems.Count metodu yerine listView1.SelectedItems.Count ile normal seçim ile seçilen kayıt sayısı bulunmuştur. Foreach döngüsünde de  listView1.CheckedItems yerine listView1.SelectedItems metodu kullanılarak, döngünün normal seçim ile seçilen kayıt sayısı kadar dönmesi sağlanmıştır.

SİL (NORMAL SEÇİM) Butonu Kodları:

 

ADIM 6: listView1.Items.Clear(); metodu ile ListView1 nesnesindeki tüm kayıtlar silinmiş, kayitsayisiyaz() metodu ile de güncel kayıt  bilgisi forma yansıtılmıştır.

TÜMÜNÜ SİL Butonu Kodları:

ADIM 7: Bool türünde tanımlanan aranankayitkontrolü değişkeninin başlangıç değeri false olarak belirlenmiştir. For döngüsü ile ListView1 nesnesindeki kayıt sayısı kadar dönen bir döngü tasarlanmıştır. Her döngüde sırası ile kayıtların ilk sütunu ile textBox1 nesnesine girilen veri karşılaştırılmıştır. Eğer eşitlik varsa yani arama için textBox1 nesnesine girilen veri ListView1 nesnesinde bulunmuş ise; bool türündeki aranankayitkontrolü değişkeninin değeri true olarak değiştirilmiştir. Bu durumda for döngüsünün i değişkeni ListView1 nesnesindeki kaydı simgelemektedir. ListView nesnesindeki kayıtlar esasen bir dizide saklanmaktadır. Bu yüzden for döngüsünün i değişkeninin başlangıç değeri 0 olarak belirlenmiştir. Örneğin; aranan kayıt ListView1 nesnesinin 5. satırında bulunmuş ise i değişkeninin o anki değeri 4’tür, 5. satıra ait bilgiler ise dizinin ListView1[4] öğesinde saklanmaktadır. Aranan kayıt bulunduğunda SubItems özelliği ile veriler çekilerek textBox, comboBox ve radioButton kontrollerine aktarılmıştır. Böylece arama işlemi sonucu kullanıcıya yansıtılmıştır. textBox, comboBox ve radioButton kontrolleri pasif hale getirilmiştir. Aranan kayıt bulunamamış ise yani aranankayitkontrolü değişkeninin değeri halen false ise kullanıcıya kaydın bulunamadığı bilgisi yansıtılmıştır.

ARA Butonu Kodları:

 

ADIM 8: ARA Butonuna tıklandığında pasif olan tüm nesnelerin Enabled özelliği true yapılarak aktif hale getirilmiştir. Formdaki veri girişi yapılmasını sağlayan kontroller temizlenmiştir.

YENİ KAYIT Butonu Kodları:

Microsoft Visual Studio programlama dersleri kapsamında, C# Form Dersleri kategorisinde hazırlanan C# Listview Kullanımı ve Özellikleri isimli bu makale ile listview nesnesinin özellikleri kapsamlı olarak anlatılmıştır.

Ayrıca kapsamlı bir C# Listview Örneği ile konunun tüm hatları ile pekiştirilmesi sağlanmıştır.

C# Dersleri YouTube
C# Dersleri YouTube

Form Dersleri konusundaki tüm makaleleri okumak için tıklayınız.

Yeni videoları kaçırmamak için ► http://bit.ly/sendekodyazyoutube
C# Form Dersleri eğitimi için ► http://bit.ly/csharpformdersleri
C# Console Dersleri eğitimi için ► http://bit.ly/csharpconsoledersleri

2 Comments

  • Murat
    Posted 24 Mart 2018 15:44 0Likes

    Merhaba ,
    Hocam gerçekten yaptığınız iş çok güzel ve kutsal Allah sizden razı olsun. Teknik konuda zaten size hayranım, bilmenizi isterim ki sizin tecrübe ve yeteneğiniz çok iyi çünkü öğretmekte bir yetenek ve tecrübe ister bunu herkes yapamaz. Bence siz bu konuda çok başarılısınız.
    Hocam Listview verilerin sabit diske kaydetmek ve tekrar program çalışınca da okutmak isterdim.
    yardımcı olur musunuz?

    Şimdiden yardımlarınız için teşekkür ederim.

    • admin
      Posted 14 Nisan 2018 11:15 0Likes

      Murat Bey. Yorumunuz için teşekkür ederim. Allah sizden de razı olsun. Kusura bakmayın yorumunuza yanıtım gecikti. Access veri tabanı ile C# arasındaki erişime ilişkin eğitim serimiz form derslerinde mevcut oradan faydalanabilirsiniz. Yinede yardımcı olmam gereken bir konu olursa YouTube veya site üzerinden sorabilirsiniz. Başarılar diliyorum.

Leave a comment