0

NumericUpDown コントロールをサブクラス化して、IDE のツールボックスの上に表示される xNumericUpDown という名前を付けます。
新しいコントロールが元のコントロールとは異なるデフォルト値を設定することを望みます。
最も重要なのは、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、小数点以下の桁数 = 0、増分 = 1。

必要な機能を取得するにはどうすればよいですか?

4

2 に答える 2

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キーワードは、派生したクラスの基本クラスの実装を非表示にするためにのみ使用します。

于 2013-10-22T19:33:33.613 に答える