12,298,001 members (57,130 online)
Add your own
alternative version

41.2K views
714 downloads
31 bookmarked
Posted

# NumericUpDown with unit measure

, 17 Jun 2007 CPOL
 Rate this:
Please Sign up or sign in to vote.
How to create a NumericUpDown control with unit measure. Support Vista styles!

This control was designed by CTR (centro-tecnologia-rocci), Rocci Luca & D'Andrea Vito

## Introduction

This control is an evolution of the classic control NumericUpDown. The control numericUpDown visualizes and returns through a property value, a decimal value, but what if we need to increment a numeric value also specifying the measure? At this point, our UpDownEx control enters the game. Our control returns a double value and visualizes a type value double and some text that indicates the measure. The increment is relative to the precision of the visualized number.

For example, if you enter a number with three decimal digits, the increment will be in 0.001. Plus every step in the measure stair is automatic, either in increment or in decrement phases.

## The code

The UpDownEx code inherits the "Control" class and includes a NumericUpDown standard control and some properties like an Array that indicates the measures.

Private Sub Format()
Dim str_Format As String
If UpDown.Value = int_Factor * (int_UnitsActual) And int_UnitsActual > 0 Then
int_UnitsActual -= 1
UpDown.Value -= 1
UpDown.DecimalPlaces -= 1
ElseIf UpDown.Value = int_Factor * (int_UnitsActual + 1) And _
int_UnitsActual < str_Units.Length Then
int_UnitsActual += 1
UpDown.Value += 1
UpDown.DecimalPlaces += 1
End If
UpDown.Increment = dbl_Decimals(UpDown.DecimalPlaces)
Dim i As Integer
str_Format = "#,"
For i = 0 To UpDown.DecimalPlaces - 1
str_Format += "#"
Next
str_Format += "0."
For i = 0 To UpDown.DecimalPlaces - 1
str_Format += "0"
Next
dbl_Value = UpDown.Value - (int_Factor * int_UnitsActual)
Me.TextControl.Text = dbl_Value.ToString(str_Format) & " " & str_Units(int_UnitsActual)
End Sub

#### Units of measure

• Factor: Represents the step between two units of measure
• Maximum: Represents the max value
• Minumum: Represents the min value
• MeasureUnits: Represents an array of strings containing the units of measure

#### Values

• FormattedValues: Represents the value with the units of measure
• UnformattedValues: Represents the value
Windows Vista styles are supported:

## License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

## About the Author

 Web Developer Italy

## Comments and Discussions

 First Prev Next
 Good Try Sabresite7-May-12 9:44 Sabresite 7-May-12 9:44
 My vote of 2 Dave Kreskowiak8-Mar-10 14:57 Dave Kreskowiak 8-Mar-10 14:57
 Numeric UpDown Control Member 33200608-Sep-08 22:51 Member 3320060 8-Sep-08 22:51
 Re: Numeric UpDown Control CTR (centro-tecnologia-rocci)14-Sep-08 22:27 CTR (centro-tecnologia-rocci) 14-Sep-08 22:27
 Pretty... wout de zeeuw17-Jun-07 13:34 wout de zeeuw 17-Jun-07 13:34
 Re: Pretty... CTR (centro-tecnologia-rocci)18-Jun-07 0:31 CTR (centro-tecnologia-rocci) 18-Jun-07 0:31
 Last Visit: 31-Dec-99 18:00     Last Update: 27-May-16 15:32 Refresh 1

General    News    Suggestion    Question    Bug    Answer    Joke    Praise    Rant    Admin

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160525.2 | Last Updated 17 Jun 2007
Article Copyright 2006 by CTR (centro-tecnologia-rocci)
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid