Bu makalemizde visual studio kullananların sıklıkla kullandığı ve esnek bir yapıya sahip olan property grid componentinden bahsedeceğiz. Property grid nedir, ne için kullanılır, nasıl eklenir, temel özellikleri nelerdir gibi konulara deyineceğiz. Makalemizin 2. Bölümünde ise complex data tiplerini nasıl gösteririz, gibi konulara deyineceğiz.
Visual Studio içerisinde bulunan form ve componentlere ait özelliklerin görüntülendiği “Properties” penceresi property gride bir örnektir. PropertyGrid ile objelerin özelliklerini görüntüleyebilir, üzerinde değişiklikler yapabilir, farklı editörler yardımı ile veri yapılarını görselleştirebiliriz.
Property grid componentini kullanabilmek için ”Toolbox” üzerinde sağa tıklayıp, “Choose Items” seçeneğine tıkladığımızda, karşımıza aşağıdaki (Resim-1) gibi component listesi gelecektir.
Visual Studio içerisinde bulunan form ve componentlere ait özelliklerin görüntülendiği “Properties” penceresi property gride bir örnektir. PropertyGrid ile objelerin özelliklerini görüntüleyebilir, üzerinde değişiklikler yapabilir, farklı editörler yardımı ile veri yapılarını görselleştirebiliriz.
Property grid componentini kullanabilmek için ”Toolbox” üzerinde sağa tıklayıp, “Choose Items” seçeneğine tıkladığımızda, karşımıza aşağıdaki (Resim-1) gibi component listesi gelecektir.
Resim-1
Bu listeden Property grid componentlerinin checkini işaretleyip “ok” butonuna tıkladığınızda toolbox’ımıza poperty grid componenti eklenmiş olacaktır.
Bu componenti toolbox’tan sürükleyip formumuzun üzerine bırakarak kullanabiliriz. Yazdığımız herhangi bir sınıfn instance’ını oluşturup property grid üzerinden gösterip, istediğimiz özelliklerini değiştirtebiliriz. Hemen hemen tüm sınıfları property grid üzerinden yönetebiliriz, bu anlamda property grid bize generic bir yapı sunar.
Property Grid üç ana bölümden oluşmaktadır.
1-Toolbar: Property gride set edilen sınıfın gösterilen özelliklerin sıralanması, kategorilere göre gösterilmesi gibi seçimlerin yapılabildiği butonların var olduğu alandır.
2-Class Properties (Sınıf özellikleri): Property gride set edilen sınıfın özelliklerinin ve değerlerinin gösterildiği alandır.
3-Description (Seçilen özelliğin açıklaması): Property gride set edilen sınıfın seçili olan property açıklamasının yazıldığı alandır.
1-Toolbar: Property gride set edilen sınıfın gösterilen özelliklerin sıralanması, kategorilere göre gösterilmesi gibi seçimlerin yapılabildiği butonların var olduğu alandır.
2-Class Properties (Sınıf özellikleri): Property gride set edilen sınıfın özelliklerinin ve değerlerinin gösterildiği alandır.
3-Description (Seçilen özelliğin açıklaması): Property gride set edilen sınıfın seçili olan property açıklamasının yazıldığı alandır.
Resim-2
Property grid, bilgileri kullanıcının rahatlıkla anlayabileceği bir formatta gösterebilmek için belirli attributelar kullanır. Kodlayan kişi bu attributelar yardımı ile daha anlaşılır bir gösterim sunabilir.
Bu attributelardan bazıları şunlardır:
DescriptionAttribute: Property grid üzerinde seçili propertynin, açıklama (description) alanında gösterileceği bilgidir. Kullanıcıya özellik hakkında bilgi verilebilir.
CategoryAttribute: Property grid üzerinde gösterilen özellikler bu attribute yardımı ile kategorilere bölünerek sınıflandırılabilir. Aynı kategiri adına ait özellikler bir grup olarak, ağaç mantığı ile gösterilir.
BrowsableAttribute: Propertynin grid üzerinde gösterilip gösterilmeyeceğini belirtir. Bu attribute hiç verilmemiş ise default olarak özellik gösterilecek şekilde set edilir.
ReadOnlyAttribute: Property grid üzerinde gösterilen propertynin readonly olup olmadığını belirtir. Bu attribute verilmemiş ise default olarak değiştirilebilir olacaktır.
DefaultValueAttribute: Property grid üzerinde gösterilen propertynin default değerini gösterir.
DisplayNameAttribute: Property grid üzerinde gösterilen propertynin adını belirtir. Kodlama aşamasında anlaşılır olmayan isimleri anlaşılır bir şekile getirilebilir.
Bu attributelardan bazıları şunlardır:
DescriptionAttribute: Property grid üzerinde seçili propertynin, açıklama (description) alanında gösterileceği bilgidir. Kullanıcıya özellik hakkında bilgi verilebilir.
CategoryAttribute: Property grid üzerinde gösterilen özellikler bu attribute yardımı ile kategorilere bölünerek sınıflandırılabilir. Aynı kategiri adına ait özellikler bir grup olarak, ağaç mantığı ile gösterilir.
BrowsableAttribute: Propertynin grid üzerinde gösterilip gösterilmeyeceğini belirtir. Bu attribute hiç verilmemiş ise default olarak özellik gösterilecek şekilde set edilir.
ReadOnlyAttribute: Property grid üzerinde gösterilen propertynin readonly olup olmadığını belirtir. Bu attribute verilmemiş ise default olarak değiştirilebilir olacaktır.
DefaultValueAttribute: Property grid üzerinde gösterilen propertynin default değerini gösterir.
DisplayNameAttribute: Property grid üzerinde gösterilen propertynin adını belirtir. Kodlama aşamasında anlaşılır olmayan isimleri anlaşılır bir şekile getirilebilir.
Yukardaki grid üzerinde gösterilen sınıf şu şekildedir.
Public Class Urun
Private objAd As String<Description("Ürün adı"), DisplayName("Ürün Adı"), Category("Genel")> _Public Property Ad() As StringGetReturn objAdEnd GetSet(ByVal value As String)objAd = valueEnd SetEnd Property
Private objBarkod As String<Description("Ürün barkod bilgisi"), DisplayName("Barkod"), Category("Genel"), [ReadOnly](True)> _Public Property Barkod() As StringGetReturn objBarkodEnd GetSet(ByVal value As String)objBarkod = valueEnd SetEnd Property
Private objFiyat As Decimal<Description("Ürün fiyatı"), DisplayName("Fiyat"), Category("Genel")> _Public Property Fiyat() As DecimalGetReturn objFiyatEnd GetSet(ByVal value As Decimal)objFiyat = valueEnd SetEnd Property
End Class
“<Description("....."), DisplayName("....."), Category(".....")>” Şeklinde “<>” işaretleri arasına yazılan bilgiler ilgili attribute sınıflarıdır, böylelikle kullanıcıya daha anlaşılır bir notasyonda bilgi gösterilir.
Armağan DÖKER
Yorumlar
Yorum Gönder