Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  .NET'te, bir propertynin ne şekilde serialize edileceğini belirtmeye yarayan attribute. System.ComponentModel altındaki bu attribute özellikle web veya Windows kontrolleri yazılırken kullanılıyor. Kontrol için üretilecek kaynak kodun* (windows'da InitializeComponent metodu, web'de aspx markup) olup olmayacağını, olacaksa nasıl olacağını belirliyor.

Üç seçenek var:
Visible: Serialize edilsin demek. Default değer bu.
Content: Property'nin tipi bir sınıf ise o sınıfın property'leri serialize edilsin demek. Font propertysi gibi.
Hidden: Serialize edilmesin demek.

Örneğin aşağıdaki kodda belirtilen bir kontrolümüz olsun.

public class EditButton
{
   private TextBox _textBox = new TextBox();
   private Button  _button  = new Button();

   [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
   public TextBox TheTextBox
   {
      get { return _textBox;}
   }

   [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
   public Button TheButton
   {
      get { return _button;}
   }
}

Bu kontrolü formunuza eklediğiniz zaman PropertyGrid'de TheTextBox property'sinin başında bir + işareti göreceksiniz. İçinde TextBox'ın propertyleri listelenecek. TheButton ise hiç görünmeyecek. Aynı şekilde formun koduna baktığınızda InitializeComponents metodunda TheTextBox ile ilgili kodlar yazıldığını, TheButton için birşey yazılmadığını da göreceksiniz.

Eğer bu bir ASP.NET web custom control'ü olsaydı, kontrolü web formunun üzerine sürükleyip, TheTextBox'ın Font-Bold özelliğini true yapsaydınız şu markup oluşacaktı:

<asp:EditButton TheTextBox-Font-Bold="True" />

Tirelerle ayrılan isimler aslında üyelere erişim için kullanılan "." operatörünün yaptığı işi yapar.
"TheTextBox1.Font.Bold = true" gibi.
fizikci
12 Mayıs 2006 10:47
2.  Bir control sınıfının alt sınıfları için kullanılmazsa proje derlenirken alt sınıflar varsayılan değerlerine geri dönecektir.
bateristt
12 Mayıs 2006 11:38
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.
© 2005, Bilişim Kulübü. (1062 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen