Windows Forms Denetimlerinde Özellik Tanımlama

Özelliklere genel bakış için bkz. Özelliklere Genel Bakış. Özellik tanımlarken dikkat edilmesi gereken birkaç önemli nokta vardır:

  • Tanımladığınız özelliklere öznitelikler uygulamanız gerekir. Öznitelikler tasarımcının bir özelliği nasıl görüntülemesi gerektiğini belirtir. Ayrıntılar için bkz. Bileşenler için Tasarım Zamanı Öznitelikleri.

  • özelliği değiştirerek denetimin görsel görüntüsü etkileniyorsa, erişimciden Invalidate yöntemini (denetiminizin devralınarak Control ) set çağırabilirsiniz. Invalidate , denetimi OnPaint yeniden çizen yöntemini çağırarak. Verimlilik için Invalidate tek bir çağrısıyla sonuçlanacak OnPaint birden çok çağrı.

  • Bu .NET Framework kitaplığı tamsayılar, ondalık sayılar, Boole değerleri ve diğerleri gibi ortak veri türleri için tür dönüştürücüler sağlar. Tür dönüştürücünün amacı genellikle dizeden değere dönüştürme sağlamaktır (dize verilerinden diğer veri türlerine). Ortak veri türleri, değerleri dizelere ve dizelere uygun veri türlerine dönüştüren varsayılan tür dönüştürücüleriyle ilişkilendirildi. Özel (standart olmayan) bir veri türü olan bir özellik tanımlarsanız, bu özellikle ilişkilendirilecek tür dönüştürücüyü belirten bir öznitelik uygulamanız gerekir. Özel ui türü düzenleyicisini bir özellikle ilişkilendirmek için bir özniteliği de kullanabilirsiniz. Kullanıcı arabirimi türü düzenleyicisi, bir özelliği veya veri türünü düzenlemek için bir kullanıcı arabirimi sağlar. Renk seçici, kullanıcı arabirimi türü düzenleyicisine bir örnektir. Öznitelik örnekleri bu konunun sonunda verilmiştir.

    Not

    Özel özelliğiniz için bir tür dönüştürücü veya kullanıcı arabirimi türü düzenleyicisi kullanılamıyorsa, Bir tür dönüştürücüyü Genişletme ve Destek altında açıklandığı gibi Design-Time gerçekleştirin.

Aşağıdaki kod parçası, özel denetimi için adlı EndColor özel bir özelliği FlashTrackBar tanımlar.

Public Class FlashTrackBar  
   Inherits Control  
   ...  
   ' Private data member that backs the EndColor property.  
   Private _endColor As Color = Color.LimeGreen  
  
   ' The Category attribute tells the designer to display  
   ' it in the Flash grouping.
   ' The Description attribute provides a description of  
   ' the property.
   <Category("Flash"), _  
   Description("The ending color of the bar.")>  _  
   Public Property EndColor() As Color  
      ' The public property EndColor accesses _endColor.  
      Get  
         Return _endColor  
      End Get  
      Set  
         _endColor = value  
         If Not (baseBackground Is Nothing) And showGradient Then  
            baseBackground.Dispose()  
            baseBackground = Nothing  
         End If  
         ' The Invalidate method calls the OnPaint method, which redraws
         ' the control.  
         Invalidate()  
      End Set  
   End Property  
   ...  
End Class  
public class FlashTrackBar : Control {  
   ...  
   // Private data member that backs the EndColor property.  
   private Color endColor = Color.LimeGreen;  
   // The Category attribute tells the designer to display  
   // it in the Flash grouping.
   // The Description attribute provides a description of  
   // the property.
   [  
   Category("Flash"),  
   Description("The ending color of the bar.")  
   ]  
   // The public property EndColor accesses endColor.  
   public Color EndColor {  
      get {  
         return endColor;  
      }  
      set {  
         endColor = value;  
         if (baseBackground != null && showGradient) {  
            baseBackground.Dispose();  
            baseBackground = null;  
         }  
         // The Invalidate method calls the OnPaint method, which redraws
         // the control.  
         Invalidate();  
      }  
   }  
   ...  
}  

Aşağıdaki kod parçası, bir tür dönüştürücü ve ui türü düzenleyicisini özelliğiyle Value ilişkilendirmektedir. Bu durumda bir tamsayıdır ve varsayılan tür dönüştürücüye sahiptir, ancak özniteliği tasarımcının bunu yüzde olarak görüntülemesini sağlayan özel bir tür dönüştürücü ValueTypeConverterAttribute ( ) FlashTrackBarValueConverter uygular. Kullanıcı arabirimi türü düzenleyicisi FlashTrackBarValueEditor olan , yüzdenin görsel olarak görüntülenebilir. Bu örnek, veya özniteliği tarafından belirtilen tür dönüştürücünün veya düzenleyicinin TypeConverterAttribute varsayılan dönüştürücüyü EditorAttribute geçersiz k olduğunu da gösterir.

<Category("Flash"), _  
TypeConverter(GetType(FlashTrackBarValueConverter)), _  
Editor(GetType(FlashTrackBarValueEditor), _  
GetType(UITypeEditor)), _  
Description("The current value of the track bar.  You can enter an actual value or a percentage.")>  _  
Public ReadOnly Property Value() As Integer  
...  
End Property  
[  
Category("Flash"),
TypeConverter(typeof(FlashTrackBarValueConverter)),  
Editor(typeof(FlashTrackBarValueEditor), typeof(UITypeEditor)),  
Description("The current value of the track bar.  You can enter an actual value or a percentage.")  
]  
public int Value {  
...  
}  

Ayrıca bkz.