Могу ли я скрыть значение в элементе управления NumericUpDown? - PullRequest
5 голосов
/ 30 июля 2010

Допустим, у нас есть 0, отображаемое в поле значения элемента управления, и я хочу, чтобы, если значение было 0 - отображать string.Empty (я знаю, что тип значения является десятичным и не может быть вставлена ​​строка вместо десятичных знаков в нем, но все же ... Может быть, там есть какое-то форматирование?).

Ответы [ 4 ]

4 голосов
/ 30 июля 2010

Примечание: это зависит от текущей реализации 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 = "";
        }
    }
}
1 голос
/ 30 июля 2010
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;
            }
        }
    }
}
1 голос
/ 30 июля 2010

Кажется, что поддержка форматирования очень ограничена.

Я сам не пробовал.Но вы можете создать подкласс и переопределить метод UpdateEditText для поддержки вашего пользовательского формата.Как то так:

protected override void UpdateEditText()
{
   this.Text = Value.ToString(); // Insert your formatting here
}
0 голосов
/ 14 октября 2013

Если вы хотите скрыть только значение от пользователя, вы можете сделать ForeColor таким же, как BackColor, чтобы значение внутри NumericUpDown было невидимым для пользователя.

...