The NumericUpDownExt control is very nice. However it is one tiny feature shy of being something I've always wanted as a standard widget:
I can name two applications that make heavy use of this type of widget: 3DS Max and Corel's Graphic Suite. They both have implemented their own custom numeric up down controls consisting of a text box with arrows. And both also implemented something that made them truely useful:
You can click and drag the mouse on the arrows to cause the value to slide up and down. This makes it extremely easy to adjust the values fast (and get real-time feedback where it makes sense) as you do it.
In Max, you click and the second you start to drag up or down both the up and down button go into the depressed visual state. Then as you move the mouse up and down the value changes.
In Corel, they have a slightly thicker line between the up and down which you must click on to get this mouse slider effect.
Both work, but Max's style is probably easier to implement from what is already there.
I should also point out that both also support the notion units being specified in the input box (such as 5.6 in vs. 5.6 cm or 204 px). This particular feature isn't one I need, and is complex because you have to be able to really specify valid unit suffixes, but I thought I'd mention it just for completeness.... it isn't one I need but interesting both came up with the same idea.
Any chance the drag-to-slide-value feature might be added to this nice control? I was also wondering if it would be easy to extend the control to do it myself... but I haven't really looked into it.
That sounds like a good feature. I have logged this in our list for a future release. Should be easy to support (atleast the first one).
DWDavid WhatleyApril 4, 2003 02:25 PM UTC
Great! That'd be really fantastic.
Also, could you add a way to have the textbox appear blank? Perhaps when it's 0 based on bool property of some sort. There are times when no value, even 0, should be displayed.
Ramesh PraveenApril 7, 2003 12:25 PM UTC
DWDavid WhatleyApril 9, 2003 05:38 PM UTC
But I take back what I said... 0 is a valid value. Some way to have it be blank, but not based on 0 as a value. Maybe just method "ClearText()" or something. Then when they type something, or use the up/down thingy a value appears. The ability to blank it at will is necessary as modes change in the application.