Windows Forms uygulamalarında veri listeleme işlemleri çoğunlukla DataGridView bileşeni ile yapılır. Ancak varsayılan DataGridView görünümü çoğu zaman oldukça sade ve eski bir tasarım sunar. Modern masaüstü uygulamalarında kullanıcı deneyimi önemli olduğundan, DataGridView görünümünü özelleştirmek ve profesyonel bir tasarım oluşturmak oldukça önemlidir.
Bu rehberde C# DataGridView görünümünü değiştirme yöntemlerini detaylı şekilde inceleyeceğiz. Satır ve sütun stilleri, başlık tasarımı, seçim renkleri, grid çizgileri, otomatik sütun genişliği, modern UI görünümü ve performans optimizasyonları gibi birçok konuyu uygulamalı örneklerle ele alacağız.
Ayrıca makalenin ilerleyen bölümlerinde DataGridView tasarımını tek satır kod ile profesyonel hale getiren hazır bir extension sınıfı da paylaşacağız. Bu sınıf sayesinde tüm stil ayarlarını tek bir metod ile uygulayabilirsiniz.
DataGridView Nedir?
DataGridView, Windows Forms uygulamalarında tablo şeklinde veri göstermek için kullanılan güçlü bir kontrol bileşenidir. Veritabanı sonuçları, listeler, raporlar veya veri tabloları genellikle DataGridView üzerinden kullanıcıya gösterilir.
DataGridView sayesinde geliştiriciler:
- Verileri tablo halinde gösterebilir
- Sütunları özelleştirebilir
- Hücreleri biçimlendirebilir
- Satır seçimleri yapabilir
- Veri düzenleme işlemleri gerçekleştirebilir
Ancak varsayılan görünüm genellikle basit olduğu için çoğu uygulamada DataGridView tasarımını özelleştirmek gerekir.
C# DataGridView Görünümünü Değiştirme
C# DataGridView görünümünü değiştirme, grid bileşeninin stil özelliklerini düzenleyerek daha modern ve okunabilir bir tablo tasarımı oluşturma işlemidir.
DataGridView görünümü genellikle aşağıdaki ayarlar ile değiştirilir:
- Satır yüksekliği
- Sütun başlık tasarımı
- Arka plan renkleri
- Seçim renkleri
- Grid çizgileri
- Sütun genişliği
- Hizalama ayarları
Bu ayarlar doğru şekilde yapılandırıldığında DataGridView oldukça modern bir görünüm kazanabilir.
DataGridView Temel Görünüm Ayarları
DataGridView görünümünü düzenlerken ilk olarak temel ayarların yapılması gerekir. Bu ayarlar genellikle kullanıcı deneyimini iyileştirmek için kullanılır.
Satır Başlıklarını Gizleme
Varsayılan olarak DataGridView sol tarafta satır başlıklarını gösterir. Modern uygulamalarda çoğu zaman bu alan kullanılmaz.
dgv.RowHeadersVisible = false;
Satır Seçim Modu
Kullanıcıların satır bazlı seçim yapabilmesi için aşağıdaki ayar yapılabilir.
dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
Yeni Satır Eklemeyi Kapatma
dgv.AllowUserToAddRows = false;
Satır Silmeyi Kapatma
dgv.AllowUserToDeleteRows = false;
Salt Okunur DataGridView
dgv.ReadOnly = true;
Bu ayarlar özellikle raporlama veya veri görüntüleme ekranlarında oldukça kullanışlıdır.
DataGridView Stil Ayarları
DataGridView görünümünü profesyonel hale getirmek için stil ayarlarının düzenlenmesi gerekir.
Satır Yüksekliği
dgv.RowTemplate.Height = 35;
Hücre Arka Plan Rengi
dgv.DefaultCellStyle.BackColor = Color.FromArgb(66, 65, 60);
Yazı Rengi
dgv.DefaultCellStyle.ForeColor = Color.White;
Seçim Rengi
dgv.DefaultCellStyle.SelectionBackColor = Color.DimGray;
Yazı Hizalama
dgv.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
Bu ayarlar sayesinde DataGridView hem daha okunabilir hem de daha modern bir görünüm kazanır.
Sütun Genişliği ve Otomatik Boyutlandırma
DataGridView kullanırken en sık karşılaşılan sorunlardan biri sütun genişliği problemidir. Sütunlar dar kalabilir veya gereksiz boşluk oluşabilir.
Bu sorunu çözmek için AutoSizeColumnsMode özelliği kullanılır.
| Mod | Açıklama |
|---|---|
| Fill | Sütunlar grid genişliğini doldurur |
| DisplayedCells | Sütun genişliği içeriğe göre ayarlanır |
| AllCells | Tüm hücre içeriklerine göre genişlik belirlenir |
| None | Manuel genişlik kullanılır |
En çok kullanılan ayar aşağıdaki gibidir:
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
Bu ayar grid alanını tamamen dolduran bir tablo oluşturur.
Modern DataGridView Tasarımı
Modern masaüstü uygulamalarında DataGridView tasarımında bazı UI prensipleri uygulanır.
- Grid çizgileri minimum seviyede tutulur
- Satır yüksekliği artırılır
- Yazılar ortalanır
- Başlık tasarımı değiştirilir
- Koyu renk temalar kullanılır
Başlık Stil Ayarı
dgv.EnableHeadersVisualStyles = false;
dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.FromArgb(66,65,60);
dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
Grid Çizgi Ayarı
dgv.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal;
Bu ayar DataGridView’i çok daha temiz bir görünüme kavuşturur.
Hazır DataGridView Stil Extension Sınıfı
Büyük projelerde her DataGridView için tek tek stil ayarı yapmak yerine bir extension class kullanmak çok daha pratik bir yöntemdir.
Aşağıdaki sınıf sayesinde tek satır kod ile tüm DataGridView tasarımını profesyonel hale getirebilirsiniz.
using System.Drawing;
using System.Windows.Forms;
namespace Webkoz.IddaaPro.FormClasses
{
public static class DataGridViewExtensions
{
///
/// DataGridView'in görünümünü özelleştirir ve sütun genişliklerini /// dinamik olarak yönetir. Sütun sayısına veya içerik genişliğine /// göre AutoSizeColumnsMode otomatik değişir. /// /// - Az sütun varsa => Fill (tam genişlik) /// - Çok sütun varsa => DisplayedCells (sıkışma olmaz, scroll çıkar) /// - İçerik toplamı kontrol edilir, alandan taşarsa => scroll moduna geçer ///
public static void ApplyDatagridviewStyle(this DataGridView dgv) { // ========================== // 1) Genel ayarlar // ========================== dgv.RowHeadersVisible = false; dgv.BorderStyle = BorderStyle.None; dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dgv.ReadOnly = true; dgv.AllowUserToAddRows = false; dgv.AllowUserToDeleteRows = false; dgv.AllowUserToResizeRows = false; dgv.AllowUserToResizeColumns = false; dgv.ScrollBars = ScrollBars.Both; // Veri satırı stil ayarları dgv.RowTemplate.Height = 35; dgv.DefaultCellStyle.BackColor = Color.FromArgb(66, 65, 60); dgv.DefaultCellStyle.ForeColor = Color.White; dgv.DefaultCellStyle.SelectionBackColor = Color.DimGray; dgv.DefaultCellStyle.SelectionForeColor = Color.White; dgv.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgv.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal; // Başlık stil ayarları dgv.EnableHeadersVisualStyles = false; dgv.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.FromArgb(66, 65, 60); dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.White; dgv.ColumnHeadersDefaultCellStyle.SelectionBackColor = Color.FromArgb(66, 65, 60); dgv.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgv.ColumnHeadersHeight = 40; // ========================== // 2) Dinamik sütun modunu belirleme // ========================== if (dgv.Columns.Count == 0) return; int columnCount = dgv.Columns.Count; if (columnCount <= 5) { dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; return; } if (columnCount >= 12) { dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; return; } dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; dgv.AutoResizeColumns(); int totalWidth = 0; foreach (DataGridViewColumn col in dgv.Columns) totalWidth += col.Width; if (totalWidth < dgv.Width) { dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; } else { dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; } } } }
Kullanımı
dataGridView1.ApplyDatagridviewStyle();
Bu metod çağrıldığında DataGridView otomatik olarak modern bir görünüme kavuşur.
DataGridView Performans İpuçları
DataGridView büyük veri listeleri ile çalışırken performans sorunları yaşanabilir. Bu nedenle bazı optimizasyon teknikleri uygulanmalıdır.
- VirtualMode kullanın
- AutoSizeColumnsMode gereksiz kullanılmamalı
- Gereksiz eventleri kapatın
- BindingSource kullanın
- Satır sayısını sınırlayın
Virtual Mode Kullanımı
dgv.VirtualMode = true;
Bu özellik büyük veri listelerinde performansı ciddi şekilde artırır.
Sık Sorulan Sorular
DataGridView satır yüksekliği nasıl değiştirilir?
Satır yüksekliği RowTemplate özelliği kullanılarak ayarlanır.
dgv.RowTemplate.Height = 40;
DataGridView sütun genişliği otomatik nasıl ayarlanır?
AutoSizeColumnsMode özelliği kullanılarak sütun genişliği otomatik ayarlanabilir.
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
DataGridView başlık rengi nasıl değiştirilir?
ColumnHeadersDefaultCellStyle kullanılarak başlık rengi değiştirilebilir.
DataGridView satır seçimi nasıl yapılır?
SelectionMode özelliği FullRowSelect olarak ayarlanmalıdır.
DataGridView modern tasarım nasıl yapılır?
Satır yüksekliği artırılmalı, grid çizgileri azaltılmalı, başlık tasarımı değiştirilmelidir.


Yorum Yap