Windows Forms Denetimlerinde Özellik Tanımlama
Özelliklere genel bakış için bkz . Özelliklere Genel Bakış. Bir özelliği 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ğin değiştirilmesi denetimin görsel görünümünü etkiliyorsa, erişimciden yöntemini (denetiminizin devraldığıControl) çağırın.Invalidate
set
Invalidate buna karşılık, denetimi yeniden çizen yöntemini çağırır OnPaint . Verimlilik için Invalidate tek bir çağrıya neden olan OnPaint birden çok çağrı..NET Framework sınıf kitaplığı, tamsayılar, ondalık sayılar, Boole değerleri ve diğerleri gibi yaygın veri türleri için tür dönüştürücüleri sağlar. Tür dönüştürücüsünün amacı genellikle dizeden değere dönüştürme sağlamaktır (dize verilerinden diğer veri türlerine). Yaygın 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şkilendirilir. Özel (yani standart olmayan) bir veri türü olan bir özellik tanımlarsanız, bu özellikle ilişkilendirilecek tür dönüştürücüsünü belirten bir öznitelik uygulamanız gerekir. Özel kullanıcı arabirimi türü düzenleyicisini bir özellik ile ilişkilendirmek için bir öznitelik 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üzenleyicisi örneğidir. Öznitelik örnekleri bu konunun sonunda verilmiştir.
Dekont
Özel özelliğiniz için bir tür dönüştürücüsü veya kullanıcı arabirimi türü düzenleyicisi kullanılamıyorsa, Tasarım Zamanı Desteğini Genişletme bölümünde açıklandığı gibi bir tür uygulayabilirsiniz.
Aşağıdaki kod parçası, özel denetimi FlashTrackBar
için adlı EndColor
bir özel özellik 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üsü ve kullanıcı arabirimi türü düzenleyicisini özelliğiyle Value
ilişkilendirir. Bu durumda Value
bir tamsayıdır ve varsayılan tür dönüştürücüsü vardır, ancak özniteliği tasarımcının TypeConverterAttribute bunu yüzde olarak görüntülemesini sağlayan bir özel tür dönüştürücüsü (FlashTrackBarValueConverter
) uygular. KULLANıCı arabirimi türü düzenleyicisi, FlashTrackBarValueEditor
yüzdenin görsel olarak görüntülenmesine izin verir. Bu örnekte, veya EditorAttribute özniteliği tarafından belirtilen tür dönüştürücüsunun veya düzenleyicinin TypeConverterAttribute varsayılan dönüştürücüsü geçersiz kıldığını 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.
.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