我是NumericUpDown控件的子类,名为xNumericUpDown,它现在出现在我的IDE工具箱顶部。
我希望我的新控件设置默认值与原始控件不同
最重要的是DecimalPlaces = 2,Minimal = Decimal.MinValue,Maximal = Decimal.MaxValue和Increment = 0.
我想我应该在子类中创建正确的属性。 所以我这样试试:
<DefaultValue(Decimal.MinValue), _
Browsable(True)> _
Shadows Property Minimum() As Decimal
Get
Return MyBase.Minimum
End Get
Set(ByVal value As Decimal)
MyBase.Minimum = value
End Set
End Property
但这不起作用。 放置到我的控件时具有原始NumericUpDown的属性 最小值= 0,最大值= 100,DecimalPlaces = 0,增量= 1。
如何获得所需的功能?
答案 0 :(得分:3)
DefaultValue
只是设计者用来确定是否序列化数据(并在PropertyGrid中使其变为粗体)的属性。在您的代码中,您仍然必须自己“设置”默认值。
Public Class xNumericUpDown
Inherits NumericUpDown
Public Sub New()
MyBase.DecimalPlaces = 3
End Sub
<DefaultValue(3)> _
Public Shadows Property DecimalPlaces As Integer
Get
Return MyBase.DecimalPlaces
End Get
Set(value As Integer)
MyBase.DecimalPlaces = value
End Set
End Property
End Class
答案 1 :(得分:2)
我不太了解Vb.Net,但这里是c#,您可以在其中创建自己的控件,为属性提供默认值。
public class MyNumericUpDown : NumericUpDown
{
public MyNumericUpDown():base()
{
DecimalPlaces = 2;
Minimum = decimal.MinValue;
Maximum = decimal.MaxValue;
Increment = 1;
}
}
正如我所说,我不知道vb.Net,但我认为这是翻译......
Public Class MyNumericUpDown Inherits NumericUpDown
{
Public Sub New()
{
MyBase.New()
DecimalPlaces = 2
Minimum = decimal.MinValue
Maximum = decimal.MaxValue
Increment = 1
}
}
如果您不需要使用具有常量默认值的NumericUpDown,那么创建自定义控件将没有价值,您只需为每个需要创建不同的对象。
numericUpDown1 = New NumericUpDown()
' Set the Minimum, Maximum, and other values as needed.
numericUpDown1.DecimalPlaces = 2
numericUpDown1.Maximum = decimal.MaxValue
numericUpDown1.Minimum = decimal.MinValue
numericUpDown1.Increment = 1
您只能使用Shadow
关键字隐藏您派生的类的基类中的实现。