5

假设我们已经0在控件的值字段中显示,我希望如果值是0- 显示string.Empty(我知道值的类型是小数,并且不能插入字符串而不是小数,但仍然......也许那里可能有一些格式?)。

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 回答
-1

如果您只想对用户隐藏该值,您可以将ForeColor其设置为相同,BackColor以便用户看不到里面的值NumericUpDown

于 2013-10-14T06:54:44.003 回答