5

0コントロールの値フィールドに表示したとしましょう。値が-displayの場合0(値string.Emptyのタイプが10進数であり、10進数の代わりに文字列を挿入できないことはわかっていますが、それでも...多分そこにいくつかのフォーマットが可能ですか?)

4

4 に答える 4

4

注: これは、 の現在の実装に依存しNumericUpDownます。

あなたがする必要があるのは、次のものから継承する新しいコントロールを作成することNumericUpDownです:

public partial class SpecialNumericUpDown : NumericUpDown
{
    public SpecialNumericUpDown()
    {
        InitializeComponent();
    }

    protected override void UpdateEditText()
    {
        if (this.Value != 0)
        {
            base.UpdateEditText();
        }
        else
        {
            base.Controls[1].Text = "";
        }
    }
}
于 2010-07-30T08:09:34.273 に答える
1

フォーマットを変更するためのサポートは非​​常に限られているようです。

私はこれを自分で試したことがありません。ただし、サブクラスを作成し、UpdateEditTextメソッドをオーバーライドしてカスタム形式をサポートすることもできます。このようなもの:

protected override void UpdateEditText()
{
   this.Text = Value.ToString(); // Insert your formatting here
}
于 2010-07-30T08:04:35.647 に答える
1
public partial class MyNumericUpDown : NumericUpDown
{
    public override string Text
    {
        get
        {
            if (base.Text.Length == 0)
            {
                return "0";
            }
            else
            {
                return base.Text;
            }
        }
        set
        {
            if (value.Equals("0"))
            {
                base.Text = "";
            }
            else
            {
                base.Text = value;
            }
        }
    }
}
于 2010-07-30T08:07:15.697 に答える