C# DataGridView Kullanımı Ve Özelleştirme

Merhaba arkadaşlar, C# dili ile geliştirilen projelerde benim en çok kullandığım, verileri göstermek için benim en uygun bulduğum yapı olan DataGridView’in kullanımını göstereceğim.

Öncelikle DataGridView’in üstüne tıklayıp properties kısmından BackgroundColor özelliğinden yararlanarak arka plan rengini isteğimize göre ayarlayalım, default olarak gri geliyor ben beyaz kullanıyorum.

Şimdi RowHeadersVisible özelliğini False yapıyoruz.

AutoSizeColumnsMode özelliğini Fill yaparak verilerin DataGridView’in tümünü doldurmasını sağlıyoruz

AutoSizeRowsMode özelliğini AllCellsExcpectHeaders yapıyoruz böylece başlık boyuna göre veriler düzenli bir şekilde görünüyor.

SelectionMode özelliğini FullRowSelect yaparak bütün satırın seçili hale gelmesini sağlıyoruz

RowsDefaultCellStyle özelliğine girip satırların boyutlarını rengini ve Alignmetn(Yazının orta veya sola yaslı şekilde olması) özelliğini isteğimize göre değiştiriyoruz.

Şimdi sırada kod kısmı var, ben gridAyar() şeklinde bir fonksiyon yazmayı tercih ediyorum

DataGridView’e veri ekleme işlemi ise çok basit bir şekilde, kaç adet kolon belirlediysek o kadar virgül koyarak ekleme işlemini yapıyoruz;

DataGridin son hali şu şekilde oluyor.

DataGridView’in sütunlarından birine resim ekleme işlemi için:

şeklinde ekleme yapıyoruz. Resource kısmına eklediğin fotoğraf sayesinde resim eklenmiş oluıyor

Son olarak eklemiş olduğumuz sil butonuna tıklanma olayını yapalım Bunun için DataGridin properties kısmından events bölümünü açıp CellClick özelliğine çift tıklamamız gerekiyor böylece tıklandığında çalışacak olan fonksiyon otomatik olarak oluşturulmuş olacak

Şimdi hangi kolonun seçildiğini bulup işlem yaptıralım bunun için şu kodu yazmamız gerekiyor

e.ColumnInex == 4 kısmı kaçıncı kolona tıklandığında olmasını istediğiniz şey demek. O kolonda ki bilgileri almak içinse şu kodu yazmanız yeterli

Takıldığınız yerleri sorabilirsiniz. Kolay gelsin…

7 Comments

  1. Mehmet bey merhaba.
    Ben datagridView fonksiyonunda texbox tan bilgi aktaracağım ancak ilk sütuna otomatik sıralı sayı vermek istiyorum ayrıca aradan örneğin 10 adet satıra bilgi girdim ve 5 inciyi sildiğim de kalanları tekrardan 1 den 10 a kadar sıralaması gerekiyor mümkünmü?
    Birde bunları database değildi bir dosyaya aktarıp lazım olduğunda tekrar alacağım dosya tipi ne olabilir txt ve benzerlerini istemiyorum

    1. Merhaba,
      Evet bu bahsettiğiniz şey mümkün. Öncelikle dosya aktarmadan başlayayım, dosya işlemlerinde txt formatını kullanmak istemiyorsanız excel dosya formatını kullanabilirsiniz. Veya Access ile çalışabilirsiniz.
      Sıra numarasını da şu şekilde yapabilirsiniz, örneğin dataları bir şekilde okudunuz dataList adında bir objeninin içinde olduğunu düşünelim datalarınızı.

      for(int i =0;i< dataList.count ; i++){ dataGridView1.Rows.Add(i+1,dataList[i].data1,dataList[i].data2); }

      şeklinde doldurabilirsiniz. Bunu yapmadan önce yukarıda verdiğim örnekteki gibi gridAyarı adında bir fonksiyon oluşturmanız gerekiyor, böylece kaç adet sütun olacağını, sütunların boyutlarını, isimlerini vs. belirleyebilirsiniz.
      Silinme olayında örneğin 4. sırada bulunan veriyi sildik, getData adında bir fonksiyon yazıp, datagrid'i doldurabilir ve silme işleminden sonra bu fonksiyonu bir daha çağırabilirsiniz, böylece sıra kaldığı yerden devam eder, 4. sırada bulunan veri silinse bile datayı tekrardan çekeceğiniz için 5. sırada bulunan data silinen datanın yerine geçer ve 4. sıra olur.

      getData(...){
      .....
      for(int i = 0;i < dataList.count; i++){ dataGridView1.Rows.Add(i+1, dataList[i].data1, dataList[i].data2); } }

      Umarım açıklayıcı olmuştur. İyi çalışmalar

  2. Merhaba Öncelikle Kolay Gelsin Size Bir Sorum var Cevaplarsanız Sevinirim

    C# Devexpres DataGridWiev Liste Cektim Ama En alta Manuel Bir Satır Ekledim
    listenin Kendi Özeliği Olan Kolona Tıklayınca Alfabetik Sıralamaya Giriyor Satırlar Haliyle Manuel Eklediğim Satırında Yeri Değişiyor
    Ben Bu Satırın Her zaman En alta Sabit Kalabilmesi için Nasıl Bir yol izleyebilirim Yardımcı Olursanız Çok sevinirim

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir