Search code examples
c#numericupdown

How to Show Substitute Text for Some Values in NumericUpDown?


I made a dialog box that contains a numericupdown control, which has a range of -1~100

I want to show "infinite" for -1 instead of the raw value.


Solution

  • To get the desired behaviour you have to create your own control that inherits from NumericUpDown. To change the text you can override the UpdateEditText method:

    public class NumericUpDownEx : NumericUpDown
    {
        public NumericUpDownEx()
        {
        }
    
        protected override void UpdateEditText()
        {
            if (Value < 0)
            {
                Text = "infinite";
            }
            else
            {
                base.UpdateEditText();
            }
        }
    }