Отображение начальных нулей в числовом элементе управления вверх (C #) - PullRequest
1 голос
/ 31 августа 2009

У меня есть числовой элемент управления внизу формы Windows C #, и я заинтересован в добавлении начального нуля к его значению, если оно <10. (Пользователь должен ввести значение минут для времени.) </p>

Я еще не очень знаком с переопределениями / наследованием в C #, но похоже, что мне, возможно, придется это сделать.

Похоже, в этом сообщении на EggheadCafe есть ответ, который мне нужен. Это так же просто, как создать новый класс, а затем создать элемент управления для этого нового класса?

public class TestNum : NumericUpDown
{
protected override void ValidateEditText()
{
if (base.UserEdit)
{
base.ValidateEditText();
}
}

protected override void UpdateEditText()
{
Text = Convert.ToInt32(base.Value).ToString("00");
}
}

Когда я пытаюсь это сделать, я не уверен, как создать новый элемент управления, использующий преимущества этого класса. Я использую Visual Studio 2008. Все еще очень плохо знаком с формой Windows. Спасибо за любой совет.

EDIT

Мне удалось выполнить эту работу, отредактировав созданный дизайнером код так, чтобы вместо нового элемента управления был исходный класс, а был новый. Поэтому после добавления класса выше я сделал следующее (эти изменения находятся в двух разных местах, но я показываю только те строки, которые имели значение):

Изменено:

this.numTest = new System.Windows.Forms.NumericUpDown();
private System.Windows.Forms.NumericUpDown numTest;

Кому:

this.numTest = new SampleForm.TestNum();
private TestNum numTest;

Ответы [ 4 ]

8 голосов
/ 31 августа 2009

Почему бы просто не использовать DateTimePicker элемент управления? Установите для его свойства ShowNumericUpDown значение true, а для свойства Format - значение Custom, а для свойства CustomFormat - значение чч: мм: сс.

Возможно, это будет полезно для вас.

2 голосов
/ 31 августа 2009

Вам нужно использовать этот недавно созданный класс в вашей форме. Он не заменяет все элементы управления NumericUpDown, это подкласс.

Добавьте проект, который содержит этот класс, на панель инструментов (Инструменты-> Элементы панели инструментов ... - если память служит), и вы сможете перетащить элемент управления на форму, где вы хотите его использовать.

0 голосов
/ 05 января 2015

Использовать средство выбора даты со следующими свойствами:

  1. Формат = Пользовательский
  2. CustomFormat = "чч: мм: сс"
  3. ShowUpDown = True
0 голосов
/ 02 сентября 2014

Наткнулся на это, ища "Hex Display NumericUpDown с ведущими нулями"

public class HexNumericUpDown : System.Windows.Forms.NumericUpDown
{
    public HexNumericUpDown()
    {
        Hexadecimal = true;
    }

    protected override void ValidateEditText()
    {
        if (base.UserEdit)
        {
            base.ValidateEditText();
        }
    }

    protected override void UpdateEditText()
    {
        Text = System.Convert.ToInt64(base.Value).ToString("X" + HexLength);
    }

    [System.ComponentModel.DefaultValue(4)]
    public int HexLength
    {
        get { return m_nHexLength; }
        set { m_nHexLength = value; }
    }

    public new System.Int64 Value
    {
        get { return System.Convert.ToInt64(base.Value); }
        set { base.Value = System.Convert.ToDecimal(value); }
    }

    private int m_nHexLength = 4;
 }
...