Windows Forms DataGridView Denetimindeki Hücre Stilleri
Denetimdeki her hücrenin DataGridView metin biçimi, arka plan rengi, ön plan rengi ve yazı tipi gibi kendi stili olabilir. Ancak genellikle birden çok hücre belirli stil özelliklerini paylaşır.
Stilleri paylaşan hücre grupları, belirli satır veya sütunlar içindeki tüm hücreleri, belirli değerleri içeren tüm hücreleri veya denetimdeki tüm hücreleri içerebilir. Bu gruplar çakıştığı için, her hücre stil bilgilerini birden fazla yerden alabilir. Örneğin, denetimdeki DataGridView her hücrenin aynı yazı tipini kullanmasını, ancak yalnızca para birimi sütunlarındaki hücrelerin para birimi biçimini kullanmasını ve yalnızca negatif sayı içeren para birimi hücrelerinin kırmızı ön plan rengi kullanmasını isteyebilirsiniz.
DataGridViewCellStyle Sınıfı
DataGridViewCellStyle sınıfı görsel stiliyle ilgili aşağıdaki özellikleri içerir:
Bu sınıf, biçimlendirmeyle ilgili aşağıdaki özellikleri de içerir:
Bu özellikler ve diğer hücre stili özellikler hakkında daha fazla bilgi için aşağıdaki Başvuru belgelerine ve Ayrıca Bkz bölümünde listelenen konulara bakın DataGridViewCellStyle .
DataGridViewCellStyle Nesnelerini Kullanma
, , DataGridViewRowDataGridViewColumnve sınıflarının DataGridViewçeşitli özelliklerinden ve DataGridViewCell türetilmiş sınıflarından nesneleri alabilirsinizDataGridViewCellStyle. Bu özelliklerden biri henüz ayarlanmamışsa, değerinin alınması yeni DataGridViewCellStyle bir nesne oluşturur. Ayrıca kendi DataGridViewCellStyle nesnelerinizin örneğini oluşturabilir ve bunları bu özelliklere atayabilirsiniz.
Nesneleri birden çok DataGridView öğe arasında paylaşarak DataGridViewCellStyle stil bilgilerinin gereksiz şekilde çoğaltılmasını önleyebilirsiniz. Denetim, sütun ve satır düzeylerinde ayarlanan stiller her düzeyi hücre düzeyine kadar filtrelediğinden, yukarıdaki düzeylerden farklı olan her düzeyde yalnızca bu stil özelliklerini ayarlayarak stil yinelemesini önleyebilirsiniz. Bu, aşağıdaki Stil Devralma bölümünde daha ayrıntılı olarak açıklanmıştır.
Aşağıdaki tabloda nesneleri alan veya ayarlayan DataGridViewCellStyle birincil özellikler listelenir.
Özellik | Sınıflar | Tanım |
---|---|---|
DefaultCellStyle |
DataGridView, DataGridViewColumn, DataGridViewRowve türetilmiş sınıflar | Denetimin tamamında (üst bilgi hücreleri dahil), sütundaki veya satırdaki tüm hücreler tarafından kullanılan varsayılan stilleri alır veya ayarlar. |
RowsDefaultCellStyle | DataGridView | Denetimdeki tüm satırlar tarafından kullanılan varsayılan hücre stillerini alır veya ayarlar. Bu, üst bilgi hücrelerini içermez. |
AlternatingRowsDefaultCellStyle | DataGridView | Denetimdeki satırları değiştirerek kullanılan varsayılan hücre stillerini alır veya ayarlar. Kayıt defteri benzeri bir efekt oluşturmak için kullanılır. |
RowHeadersDefaultCellStyle | DataGridView | Denetimin satır üst bilgileri tarafından kullanılan varsayılan hücre stillerini alır veya ayarlar. Görsel stiller etkinse geçerli tema tarafından geçersiz kılınabilir. |
ColumnHeadersDefaultCellStyle | DataGridView | Denetimin sütun başlıkları tarafından kullanılan varsayılan hücre stillerini alır veya ayarlar. Görsel stiller etkinse geçerli tema tarafından geçersiz kılınabilir. |
Style | DataGridViewCell ve türetilmiş sınıflar | Hücre düzeyinde belirtilen stilleri alır veya ayarlar. Bu stiller, daha yüksek düzeylerden devralınanları geçersiz kılar. |
InheritedStyle |
DataGridViewCell, DataGridViewRow, DataGridViewColumnve türetilmiş sınıflar | Daha yüksek düzeylerden devralınan stiller de dahil olmak üzere hücreye, satıra veya sütuna uygulanmış olan tüm stilleri alır. |
Yukarıda belirtildiği gibi, bir stil özelliğinin değerini almak, özellik daha önce ayarlanmamışsa otomatik olarak yeni DataGridViewCellStyle bir nesnenin örneğini oluşturur. Bu nesnelerin gereksiz yere oluşturulmasını önlemek için, satır ve sütun sınıflarının özelliğin ayarlanıp ayarlanmadığını DefaultCellStyle belirlemek için denetleyebileceğiniz bir HasDefaultCellStyle özelliği vardır. Benzer şekilde, hücre sınıflarının özelliğin ayarlanıp ayarlanmadığını Style gösteren bir HasStyle özelliği vardır.
Stil özelliklerinin her birinin denetiminde DataGridView karşılık gelen bir PropertyNameChanged
olayı vardır. Satır, sütun ve hücre özellikleri için olayın adı "", "Row
Column
" veya "Cell
" ile başlar (örneğin, RowDefaultCellStyleChanged). Bu olayların her biri, ilgili stil özelliği farklı DataGridViewCellStyle bir nesneye ayarlandığında gerçekleşir. Bir stil özelliğinden nesne DataGridViewCellStyle aldığınızda ve özellik değerlerini değiştirdiğinizde bu olaylar gerçekleşmez. Hücre stili nesnelerindeki değişiklikleri yanıtlamak için olayı işleyebilir CellStyleContentChanged .
Stil Devralımı
Her DataGridViewCell birinin görünümü kendi özelliğinden InheritedStyle alır. DataGridViewCellStyle Bu özellik tarafından döndürülen nesne, değerlerini türündeki DataGridViewCellStylebir özellik hiyerarşisinden devralır. Bu özellikler, üst bilgi olmayan hücreler için değerlerini alma sırasına InheritedStyle göre aşağıda listelenmiştir.
DataGridView.AlternatingRowsDefaultCellStyle (yalnızca tek dizin numarasına sahip satırlardaki hücreler için)
Satır ve sütun üst bilgisi hücreleri için özellik, InheritedStyle verilen sırada aşağıdaki kaynak özellikler listesinde yer alan değerlerle doldurulur.
Aşağıdaki diyagramda bu işlem gösterilmektedir.
Belirli satırlar ve sütunlar tarafından devralınan stillere de erişebilirsiniz. column InheritedStyle özelliği, değerlerini aşağıdaki özelliklerden devralır.
Row InheritedStyle özelliği, değerlerini aşağıdaki özelliklerden devralır.
DataGridView.AlternatingRowsDefaultCellStyle (yalnızca tek dizin numarasına sahip satırlardaki hücreler için)
Bir özellik tarafından InheritedStyle
döndürülen bir DataGridViewCellStyle nesnedeki her özellik için, özellik değeri, ilgili özelliğin sınıf varsayılanları dışında bir değere ayarlandığı uygun listedeki ilk hücre stilinden DataGridViewCellStyle alınır.
Aşağıdaki tabloda, bir örnek hücrenin özellik değerinin ForeColor içeren sütunundan nasıl devralındığı gösterilmektedir.
Türün özelliği DataGridViewCellStyle |
Alınan nesne için örnek ForeColor değer |
---|---|
DataGridViewCell.Style | Color.Empty |
DataGridViewRow.DefaultCellStyle | Color.Red |
DataGridView.AlternatingRowsDefaultCellStyle | Color.Empty |
DataGridView.RowsDefaultCellStyle | Color.Empty |
DataGridViewColumn.DefaultCellStyle | Color.DarkBlue |
DataGridView.DefaultCellStyle | Color.Black |
Bu durumda, Color.Red hücrenin satırındaki değer listedeki ilk gerçek değerdir. Bu, hücrenin ForeColorInheritedStyleözellik değeri olur.
Aşağıdaki diyagramda, farklı DataGridViewCellStyle özelliklerin değerlerini farklı yerlerden nasıl devralabileceği gösterilmektedir.
Stil devralma özelliğinden yararlanarak, aynı bilgileri birden çok yerde belirtmek zorunda kalmadan denetimin tamamı için uygun stilleri sağlayabilirsiniz.
Üst bilgi hücreleri, açıklandığı gibi stil devralma işlemine katılsa da, denetimin ColumnHeadersDefaultCellStyle ve RowHeadersDefaultCellStyle özellikleri DataGridView tarafından döndürülen nesneler, özelliği tarafından döndürülen nesnenin özellik değerlerini geçersiz kılan ilk özellik değerlerine DefaultCellStyle sahiptir. özelliği tarafından DefaultCellStyle döndürülen nesne için özelliklerin satır ve sütun başlıklarına uygulanmasını istiyorsanız, ve RowHeadersDefaultCellStyle özellikleri tarafından ColumnHeadersDefaultCellStyle döndürülen nesnelerin karşılık gelen özelliklerini sınıf için DataGridViewCellStyle belirtilen varsayılanlara ayarlamanız gerekir.
Dekont
Görsel stiller etkinleştirilirse, satır ve sütun başlıkları (hariç TopLeftHeaderCell) geçerli tema tarafından otomatik olarak stillendirilir ve bu özellikler tarafından belirtilen tüm stiller geçersiz kılınabilir.
DataGridViewButtonColumn, DataGridViewImageColumnve DataGridViewCheckBoxColumn türleri, sütun DefaultCellStyle özelliği tarafından döndürülen nesnenin bazı değerlerini de başlatır. Daha fazla bilgi için bu türlerin başvuru belgelerine bakın.
Stilleri Dinamik Olarak Ayarlama
Belirli değerlere sahip hücrelerin stillerini özelleştirmek için olay için DataGridView.CellFormatting bir işleyici uygulayın. Bu olayın işleyicileri türünde bir bağımsız değişken DataGridViewCellFormattingEventArgs alır. Bu nesne, biçimlendirilen hücrenin değerini denetimdeki DataGridView konumuyla birlikte belirlemenize olanak sağlayan özellikler içerir. Bu nesne ayrıca, biçimlendirilmekte olan hücrenin özelliğinin InheritedStyle değerine başlatılan bir CellStyle özellik içerir. Hücre değeri ve konumuna uygun stil bilgilerini belirtmek için hücre stili özelliklerini değiştirebilirsiniz.
Dekont
RowPrePaint ve RowPostPaint olayları da olay verilerinde bir DataGridViewCellStyle nesne alır, ancak bu durumda, salt okunur amaçlar için satır InheritedStyle özelliğinin bir kopyasıdır ve bu nesnedeki değişiklikler denetimi etkilemez.
Ayrıca ve CellMouseLeave olayları gibi olaylara yanıt olarak tek tek hücrelerin stillerini dinamik olarak DataGridView.CellMouseEnter değiştirebilirsiniz. Örneğin, olayın işleyicisinde CellMouseEnter , hücre arka plan renginin geçerli değerini depolayabilir (hücrenin Style özelliği aracılığıyla alınır), ardından fare üzerine geldiğinde hücreyi vurgulayacak yeni bir renge ayarlayabilirsiniz. Olay işleyicisinde CellMouseLeave arka plan rengini özgün değere geri yükleyebilirsiniz.
Dekont
Hücrenin özelliğinde Style depolanan değerlerin Önbelleğe Alma, belirli bir stil değerinin ayarlanıp ayarlanmadığına bakılmaksızın önemlidir. Bir stil ayarını geçici olarak değiştirirseniz, bunu özgün "ayarlanmadı" durumuna geri yüklemek, hücrenin stil ayarını daha yüksek bir düzeyden devralmaya geri dönmesini sağlar. Stilin devralınıp devralınmadığına bakılmaksızın bir hücre için geçerli olan gerçek stili belirlemeniz gerekiyorsa, hücrenin InheritedStyle özelliğini kullanın.
Ayrıca bkz.
- DataGridView
- DataGridViewCellStyle
- DataGridView.AlternatingRowsDefaultCellStyle
- DataGridView.ColumnHeadersDefaultCellStyle
- DataGridView.DefaultCellStyle
- DataGridView.RowHeadersDefaultCellStyle
- DataGridView.RowsDefaultCellStyle
- DataGridViewBand.InheritedStyle
- DataGridViewRow.InheritedStyle
- DataGridViewColumn.InheritedStyle
- DataGridViewBand.DefaultCellStyle
- DataGridViewCell.InheritedStyle
- DataGridViewCell.Style
- DataGridView.CellFormatting
- DataGridView.CellStyleContentChanged
- DataGridView.RowPrePaint
- DataGridView.RowPostPaint
- Windows Forms DataGridView Denetimindeki Temel Biçim ve Stiller
- Nasıl yapılır: Windows Forms DataGridView Denetimi İçin Varsayılan Hücre Stillerini Ayarlama
- Windows Forms DataGridView Denetiminde Veri Biçimlendirme
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin