SpinBox Control
Provides a numeric spin control with an edit box, supporting hexadecimal display, thousands separator, accelerated increment, and OLE drag-and-drop.
Enumerations
SpbNumberStyleConstants
Number display style constants.
| Constant | Value | Description |
|---|---|---|
| SpbNumberStyleDecimal | 0 | Decimal |
| SpbNumberStyleHexadecimal | 1 | Hexadecimal |
Properties
Name
Public Property Get Name() As StringReturns the name used to identify the object in code.
Tag
Public Property Get Tag() As String
Public Property Let Tag(ByVal Value As String)Stores extra data needed by the program.
Parent
Public Property Get Parent() As ObjectReturns the object that contains the object.
Container
Public Property Get Container() As Object
Public Property Set Container(ByVal Value As Object)Returns/sets the container of the object.
Left
Public Property Get Left() As Single
Public Property Let Left(ByVal Value As Single)Returns/sets the distance between the internal left edge of the object and the left edge of its container.
Top
Public Property Get Top() As Single
Public Property Let Top(ByVal Value As Single)Returns/sets the distance between the internal top edge of the object and the top edge of its container.
Width
Public Property Get Width() As Single
Public Property Let Width(ByVal Value As Single)Returns/sets the width of the object.
Height
Public Property Get Height() As Single
Public Property Let Height(ByVal Value As Single)Returns/sets the height of the object.
Visible
Public Property Get Visible() As Boolean
Public Property Let Visible(ByVal Value As Boolean)Returns/sets whether the object is visible.
ToolTipText
Public Property Get ToolTipText() As String
Public Property Let ToolTipText(ByVal Value As String)Returns/sets the tooltip text displayed when the mouse hovers.
HelpContextID
Public Property Get HelpContextID() As Long
Public Property Let HelpContextID(ByVal Value As Long)Returns/sets the associated context help ID.
WhatsThisHelpID
Public Property Get WhatsThisHelpID() As Long
Public Property Let WhatsThisHelpID(ByVal Value As Long)Returns/sets the associated context help ID.
DragIcon
Public Property Get DragIcon() As IPictureDisp
Public Property Let DragIcon(ByVal Value As IPictureDisp)
Public Property Set DragIcon(ByVal Value As IPictureDisp)Returns/sets the icon displayed during drag-and-drop operations.
DragMode
Public Property Get DragMode() As Integer
Public Property Let DragMode(ByVal Value As Integer)Returns/sets the drag mode.
hWnd
Public Property Get hWnd() As LongPtrReturns the control handle.
hWndUserControl
Public Property Get hWndUserControl() As LongPtrReturns the UserControl handle.
hWndEdit
Public Property Get hWndEdit() As LongPtrReturns the embedded edit box handle.
Font
Public Property Get Font() As StdFont
Public Property Let Font(ByVal NewFont As StdFont)
Public Property Set Font(ByVal NewFont As StdFont)Returns/sets the font.
VisualStyles
Public Property Get VisualStyles() As Boolean
Public Property Let VisualStyles(ByVal Value As Boolean)Returns/sets whether visual styles are enabled. Requires comctl32.dll version 6.0 or later.
BackColor
Public Property Get BackColor() As OLE_COLOR
Public Property Let BackColor(ByVal Value As OLE_COLOR)Returns/sets the background color.
ForeColor
Public Property Get ForeColor() As OLE_COLOR
Public Property Let ForeColor(ByVal Value As OLE_COLOR)Returns/sets the foreground color.
Enabled
Public Property Get Enabled() As Boolean
Public Property Let Enabled(ByVal Value As Boolean)Returns/sets whether the object can respond to user events.
OLEDropMode
Public Property Get OLEDropMode() As OLEDropModeConstants
Public Property Let OLEDropMode(ByVal Value As OLEDropModeConstants)Returns/sets whether the object can act as an OLE drop target.
MousePointer
Public Property Get MousePointer() As CCMousePointerConstants
Public Property Let MousePointer(ByVal Value As CCMousePointerConstants)Returns/sets the type of mouse pointer displayed when the mouse hovers. See common enumerations.
MouseIcon
Public Property Get MouseIcon() As IPictureDisp
Public Property Let MouseIcon(ByVal Value As IPictureDisp)
Public Property Set MouseIcon(ByVal Value As IPictureDisp)Returns/sets the custom mouse icon.
MouseTrack
Public Property Get MouseTrack() As Boolean
Public Property Let MouseTrack(ByVal Value As Boolean)Returns/sets whether events are triggered when the mouse enters or leaves the control.
RightToLeft
Public Property Get RightToLeft() As Boolean
Public Property Let RightToLeft(ByVal Value As Boolean)Returns/sets the right-to-left display direction.
RightToLeftMode
Public Property Get RightToLeftMode() As CCRightToLeftModeConstants
Public Property Let RightToLeftMode(ByVal Value As CCRightToLeftModeConstants)Returns/sets the right-to-left mode. See common enumerations.
Min
Public Property Get Min() As Long
Public Property Let Min(ByVal Value As Long)Returns/sets the minimum value.
Max
Public Property Get Max() As Long
Public Property Let Max(ByVal Value As Long)Returns/sets the maximum value.
Value
Public Property Get Value() As Long
Public Property Let Value(ByVal NewValue As Long)Returns/sets the current value.
Increment
Public Property Get Increment() As Long
Public Property Let Increment(ByVal Value As Long)Returns/sets the increment/decrement amount per click.
Wrap
Public Property Get Wrap() As Boolean
Public Property Let Wrap(ByVal Value As Boolean)Returns/sets whether the value wraps around. When True, exceeding the maximum value returns to the minimum, and vice versa.
HotTracking
Public Property Get HotTracking() As Boolean
Public Property Let HotTracking(ByVal Value As Boolean)Returns/sets whether hot tracking is enabled.
Alignment
Public Property Get Alignment() As CCLeftRightAlignmentConstants
Public Property Let Alignment(ByVal Value As CCLeftRightAlignmentConstants)Returns/sets the alignment of the up/down buttons. See common enumerations.
ThousandsSeparator
Public Property Get ThousandsSeparator() As Boolean
Public Property Let ThousandsSeparator(ByVal Value As Boolean)Returns/sets whether the thousands separator is displayed.
NumberStyle
Public Property Get NumberStyle() As SpbNumberStyleConstants
Public Property Let NumberStyle(ByVal Value As SpbNumberStyleConstants)Returns/sets the number display style.
ArrowKeysChange
Public Property Get ArrowKeysChange() As Boolean
Public Property Let ArrowKeysChange(ByVal Value As Boolean)Returns/sets whether arrow keys can change the value.
AllowOnlyNumbers
Public Property Get AllowOnlyNumbers() As Boolean
Public Property Let AllowOnlyNumbers(ByVal Value As Boolean)Returns/sets whether only numeric input is allowed.
TextAlignment
Public Property Get TextAlignment() As VBRUN.AlignmentConstants
Public Property Let TextAlignment(ByVal Value As VBRUN.AlignmentConstants)Returns/sets the text alignment.
Locked
Public Property Get Locked() As Boolean
Public Property Let Locked(ByVal Value As Boolean)Returns/sets whether the edit box content is locked and non-editable.
HideSelection
Public Property Get HideSelection() As Boolean
Public Property Let HideSelection(ByVal Value As Boolean)Returns/sets whether the selection is hidden when the control loses focus.
Text
Public Property Get Text() As String
Public Property Let Text(ByVal Value As String)Returns/sets the text in the edit box.
SelStart
Public Property Get SelStart() As Long
Public Property Let SelStart(ByVal Value As Long)Returns/sets the starting position of the selected text.
SelLength
Public Property Get SelLength() As Long
Public Property Let SelLength(ByVal Value As Long)Returns/sets the length of the selected text.
SelText
Public Property Get SelText() As String
Public Property Let SelText(ByVal Value As String)Returns/sets the selected text.
Methods
Refresh
Public Sub Refresh()Forces a complete repaint of the object.
SetAcceleration
Public Sub SetAcceleration(ByVal Delays As Variant, ByVal Increments As Variant)Sets accelerated increment parameters. Delays and Increments are arrays specifying delay times and increment amounts.
ValidateText
Public Sub ValidateText()Validates whether the text in the edit box is a valid numeric value.
OLEDrag
Public Sub OLEDrag()Initiates an OLE drag-and-drop operation.
Drag
Public Sub Drag(Optional ByRef Action As Variant)Starts, ends, or cancels a drag operation.
SetFocus
Public Sub SetFocus()Moves the focus to the control.
ZOrder
Public Sub ZOrder(Optional ByRef Position As Variant)Sets the Z-order.
Events
DownClick
Public Event DownClick()Occurs when the down button is clicked.
UpClick
Public Event UpClick()Occurs when the up button is clicked.
BeforeChange
Public Event BeforeChange(ByVal Value As Long, ByRef Delta As Long)Occurs before the value is about to change. Value is the current value, Delta is the expected change amount; modifying Delta controls the actual change.
Change
Public Event Change()Occurs after the value has changed.
TextChange
Public Event TextChange()Occurs after the edit box text has changed.
ContextMenu
Public Event ContextMenu(ByRef Handled As Boolean, ByVal X As Single, ByVal Y As Single)Occurs when the control is right-clicked. Set Handled to True to prevent the default context menu.
PreviewKeyDown
Public Event PreviewKeyDown(ByVal KeyCode As Integer, ByRef IsInputKey As Boolean)Preview before key press. IsInputKey being True indicates the key is an input key.
PreviewKeyUp
Public Event PreviewKeyUp(ByVal KeyCode As Integer, ByRef IsInputKey As Boolean)Preview before key release.
KeyDown
Public Event KeyDown(KeyCode As Integer, Shift As Integer)Occurs when a keyboard key is pressed.
KeyUp
Public Event KeyUp(KeyCode As Integer, Shift As Integer)Occurs when a keyboard key is released.
KeyPress
Public Event KeyPress(KeyChar As Integer)Occurs when an ANSI key is pressed and released.
MouseDown
Public Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Occurs when a mouse button is pressed.
MouseMove
Public Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Occurs when the mouse is moved.
MouseUp
Public Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)Occurs when a mouse button is released.
MouseEnter
Public Event MouseEnter()Occurs when the mouse enters the control area.
MouseLeave
Public Event MouseLeave()Occurs when the mouse leaves the control area.
OLECompleteDrag
Public Event OLECompleteDrag(Effect As Long)Occurs when an OLE drag-and-drop operation is completed.
OLEDragDrop
Public Event OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)Occurs when data is dropped during an OLE drag-and-drop operation.
OLEDragOver
Public Event OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer)Occurs when data is dragged over the control during an OLE drag-and-drop operation.
OLEGiveFeedback
Public Event OLEGiveFeedback(Effect As Long, DefaultCursors As Boolean)Occurs during an OLE drag-and-drop operation to provide feedback.
OLESetData
Public Event OLESetData(Data As DataObject, DataFormat As Integer)Occurs when data is set during an OLE drag-and-drop operation.
OLEStartDrag
Public Event OLEStartDrag(Data As DataObject, AllowedEffects As Long)Occurs when an OLE drag-and-drop operation starts.
Code Examples
Basic Usage
' Set up the SpinBox control
With SpinBox1
.Min = 0
.Max = 1000
.Value = 100
.Increment = 10
.Wrap = True
.HotTracking = True
.ThousandsSeparator = True
End With
' Set accelerated increment
Dim Delays(0 To 2) As Long, Increments(0 To 2) As Long
Delays(0) = 500: Increments(0) = 10
Delays(1) = 300: Increments(1) = 50
Delays(2) = 100: Increments(2) = 100
SpinBox1.SetAcceleration Delays, Increments
' Limit value change range
Private Sub SpinBox1_BeforeChange(ByVal Value As Long, ByRef Delta As Long)
If Value + Delta > 1000 Then Delta = 1000 - Value
End Sub