Skip to content

日期时间选择器控件(DTPicker)

基于 Windows 日期时间选择器通用控件,提供日期和时间的选取与自定义格式化功能。

枚举

DtpFormatConstants

常量说明
DtpFormatLongDate0长日期格式
DtpFormatShortDate1短日期格式
DtpFormatTime2时间格式
DtpFormatCustom3自定义格式

属性

Name

vb
Property Get Name() As String

返回在代码中标识对象的名称。

Tag

vb
Property Get/Let Tag() As String

存储程序所需的附加数据。

Parent

vb
Property Get Parent() As Object

返回包含此对象的对象。

Container

Property Get Container() As Object / Property Set Container(ByVal Value As Object)

返回/设置对象的容器。

Left

vb
Property Get/Let Left() As Single

返回/设置对象左边缘与其容器左边缘的距离。

Top

vb
Property Get/Let Top() As Single

返回/设置对象上边缘与其容器上边缘的距离。

Width

vb
Property Get/Let Width() As Single

返回/设置对象的宽度。

Height

vb
Property Get/Let Height() As Single

返回/设置对象的高度。

Visible

vb
Property Get/Let Visible() As Boolean

返回/设置对象是否可见。

ToolTipText

vb
Property Get/Let ToolTipText() As String

返回/设置鼠标悬停时显示的提示文本。

HelpContextID

vb
Property Get/Let HelpContextID() As Long

指定对象的默认帮助文件上下文 ID。

WhatsThisHelpID

vb
Property Get/Let WhatsThisHelpID() As Long

返回/设置与对象关联的上下文编号。

DragIcon

vb
Property Get/Let/Set DragIcon() As IPictureDisp

返回/设置拖放操作中显示的图标。

DragMode

vb
Property Get/Let DragMode() As Integer

返回/设置拖动模式(手动或自动)。

hWnd

vb
Property Get hWnd() As LongPtr

返回日期时间选择器控件的窗口句柄。

hWndUserControl

vb
Property Get hWndUserControl() As LongPtr

返回 UserControl 的窗口句柄。

hWndCalendar

vb
Property Get hWndCalendar() As LongPtr

返回下拉日历控件的窗口句柄。

Font

vb
Property Get/Let/Set Font() As StdFont

返回/设置控件字体。

CalendarFont

vb
Property Get/Let/Set CalendarFont() As StdFont

返回/设置下拉日历字体。

VisualStyles

vb
Property Get/Let VisualStyles() As Boolean

返回/设置是否启用视觉样式。

Enabled

vb
Property Get/Let Enabled() As Boolean

返回/设置控件是否响应用户事件。

OLEDropMode

vb
Property Get/Let OLEDropMode() As OLEDropModeConstants

返回/设置对象是否可作为 OLE 放置目标。参见通用枚举。

MousePointer

vb
Property Get/Let MousePointer() As CCMousePointerConstants

返回/设置鼠标指针类型。参见通用枚举。

MouseIcon

vb
Property Get/Let/Set MouseIcon() As IPictureDisp

返回/设置自定义鼠标图标。

MouseTrack

vb
Property Get/Let MouseTrack() As Boolean

返回/设置是否触发 MouseEnter/MouseLeave 事件。

RightToLeft

vb
Property Get/Let RightToLeft() As Boolean

决定双向系统上的文本显示方向和控件视觉外观。

RightToLeftLayout

vb
Property Get/Let RightToLeftLayout() As Boolean

返回/设置是否启用从右到左镜像布局。

RightToLeftMode

vb
Property Get/Let RightToLeftMode() As CCRightToLeftModeConstants

返回/设置从右到左模式。参见通用枚举。

CalendarBackColor

vb
Property Get/Let CalendarBackColor() As OLE_COLOR

返回/设置日历月份区域的背景色。

CalendarForeColor

vb
Property Get/Let CalendarForeColor() As OLE_COLOR

返回/设置日历月份区域的前景色。

CalendarTitleBackColor

vb
Property Get/Let CalendarTitleBackColor() As OLE_COLOR

返回/设置日历标题的背景色。

CalendarTitleForeColor

vb
Property Get/Let CalendarTitleForeColor() As OLE_COLOR

返回/设置日历标题的前景色。

CalendarTrailingForeColor

vb
Property Get/Let CalendarTrailingForeColor() As OLE_COLOR

返回/设置日历末尾日期的前景色。

CalendarShowToday

vb
Property Get/Let CalendarShowToday() As Boolean

返回/设置日历是否在底部显示"今天"日期。

CalendarShowTodayCircle

vb
Property Get/Let CalendarShowTodayCircle() As Boolean

返回/设置是否在今天的日期上画圆圈。

CalendarShowWeekNumbers

vb
Property Get/Let CalendarShowWeekNumbers() As Boolean

返回/设置日历是否显示周数。

CalendarShowTrailingDates

vb
Property Get/Let CalendarShowTrailingDates() As Boolean

返回/设置日历是否显示上/下月的日期。

CalendarAlignment

vb
Property Get/Let CalendarAlignment() As CCLeftRightAlignmentConstants

返回/设置日历的对齐方式。参见通用枚举。

CalendarDayState

vb
Property Get/Let CalendarDayState() As Boolean

返回/设置日历是否支持 CalendarGetDayBold 事件中的粗体日期。

CalendarUseShortestDayNames

vb
Property Get/Let CalendarUseShortestDayNames() As Boolean

返回/设置日历是否使用最短日期名称。

MinDate

vb
Property Get/Let MinDate() As Date

返回/设置可选择的最小日期。

MaxDate

vb
Property Get/Let MaxDate() As Date

返回/设置可选择的最大日期。

Value

vb
Property Get/Let Value() As Variant

返回/设置当前日期时间值。

Year

vb
Property Get Year() As Integer

返回当前日期的年份(只读)。

Month

vb
Property Get Month() As Integer

返回当前日期的月份(只读)。

Week

vb
Property Get Week() As Integer

返回当前日期的周数(只读)。

Day

vb
Property Get Day() As Integer

返回当前日期的日(只读)。

Hour

vb
Property Get Hour() As Integer

返回当前时间的小时(只读)。

Minute

vb
Property Get Minute() As Integer

返回当前时间的分钟(只读)。

Second

vb
Property Get Second() As Integer

返回当前时间的秒(只读)。

Format

vb
Property Get/Let Format() As DtpFormatConstants

返回/设置日期时间的显示格式。

CustomFormat

vb
Property Get/Let CustomFormat() As String

返回/设置自定义格式字符串。

UpDown

vb
Property Get/Let UpDown() As Boolean

返回/设置是否使用上下按钮代替下拉日历。

CheckBox

vb
Property Get/Let CheckBox() As Boolean

返回/设置是否在控件中显示复选框。

AllowUserInput

vb
Property Get/Let AllowUserInput() As Boolean

返回/设置是否允许用户直接输入日期。

StartOfWeek

vb
Property Get/Let StartOfWeek() As Integer

返回/设置一周的起始日(0=系统默认, 1=周一, ..., 7=周日)。

DroppedDown

vb
Property Get DroppedDown() As Boolean

返回日历是否处于下拉状态(只读)。

Selected

vb
Property Get Selected() As Boolean

返回复选框是否被选中(只读)。

DayCount

vb
Property Get DayCount() As Long

返回当前可见的日期数(只读)。

DayOfWeek

vb
Property Get DayOfWeek() As Integer

返回当前日期是星期几(只读)。

SystemStartOfWeek

vb
Property Get SystemStartOfWeek() As Integer

返回系统一周起始日(只读)。

方法

OLEDrag

vb
Public Sub OLEDrag()

启动 OLE 拖放操作。

Drag

vb
Public Sub Drag(Optional ByRef Action As Variant)

开始、结束或取消拖动操作。

SetFocus

vb
Public Sub SetFocus()

将焦点移到控件上。

ZOrder

vb
Public Sub ZOrder(Optional ByRef Position As Variant)

将控件放置在 Z 轴顺序的前面或后面。

Refresh

vb
Public Sub Refresh()

强制重绘控件。

GetIdealSize

vb
Public Sub GetIdealSize(ByRef Width As Long, ByRef Height As Long)

获取控件的理想尺寸。

事件

Click

vb
Public Event Click()

用户按下并释放鼠标按钮时发生。

vb
Public Event DropDown()

下拉日历即将展开时发生。

CloseUp

vb
Public Event CloseUp()

用户关闭日历时发生。

Change

vb
Public Event Change()

控件内容发生变化时发生。

ContextMenu

vb
Public Event ContextMenu(ByRef Handled As Boolean, ByVal X As Single, ByVal Y As Single)

用户右键点击或按 Shift+F10 时发生。

CalendarGetDayBold

vb
Public Event CalendarGetDayBold(ByVal StartDate As Date, ByVal Count As Long, ByRef State() As Boolean)

日历请求日期粗体信息时发生。需要 comctl32.dll 版本 6.1 或更高。

CalendarContextMenu

vb
Public Event CalendarContextMenu(ByRef Handled As Boolean, ByVal X As Single, ByVal Y As Single)

日历区域右键点击时发生。

CallbackKeyDown

vb
Public Event CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, ByRef CallbackDate As Date)

用户在回调字段上按键时发生。

FormatString

vb
Public Event FormatString(ByVal CallbackField As String, ByRef FormattedString As String)

控件请求回调字段的显示文本时发生。

FormatSize

vb
Public Event FormatSize(ByVal CallbackField As String, ByRef Size As Integer)

控件需要知道回调字段的最大允许大小时发生。

BeforeUserInput

vb
Public Event BeforeUserInput(ByVal hWndEdit As LongPtr)

用户尝试输入字符串时发生。

ParseUserInput

vb
Public Event ParseUserInput(ByVal Text As String, ByRef ParseDate As Variant)

用户输入完成时发生,需要解析输入字符串。

AfterUserInput

vb
Public Event AfterUserInput()

用户输入已完成或取消时发生。

PreviewKeyDown

vb
Public Event PreviewKeyDown(ByVal KeyCode As Integer, ByRef IsInputKey As Boolean)

在 KeyDown 事件之前发生。

PreviewKeyUp

vb
Public Event PreviewKeyUp(ByVal KeyCode As Integer, ByRef IsInputKey As Boolean)

在 KeyUp 事件之前发生。

KeyDown

vb
Public Event KeyDown(KeyCode As Integer, Shift As Integer)

用户按下键时发生。

KeyUp

vb
Public Event KeyUp(KeyCode As Integer, Shift As Integer)

用户释放键时发生。

KeyPress

vb
Public Event KeyPress(KeyChar As Integer)

用户按下并释放字符键时发生。

MouseDown

vb
Public Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

用户按下鼠标按钮时发生。

MouseMove

vb
Public Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

用户移动鼠标时发生。

MouseUp

vb
Public Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

用户释放鼠标按钮时发生。

MouseEnter

vb
Public Event MouseEnter()

鼠标进入控件时发生。

MouseLeave

vb
Public Event MouseLeave()

鼠标离开控件时发生。

OLECompleteDrag

vb
Public Event OLECompleteDrag(Effect As Long)

OLE 拖放操作完成后发生。

OLEDragDrop

vb
Public Event OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)

数据通过 OLE 拖放操作放置到控件上时发生。

OLEDragOver

vb
Public Event OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer)

鼠标在 OLE 拖放操作期间移过控件时发生。

OLEGiveFeedback

vb
Public Event OLEGiveFeedback(Effect As Long, DefaultCursors As Boolean)

需要更改鼠标光标时发生。

OLESetData

vb
Public Event OLESetData(Data As DataObject, DataFormat As Integer)

放置目标请求数据时发生。

OLEStartDrag

vb
Public Event OLEStartDrag(Data As DataObject, AllowedEffects As Long)

OLE 拖放操作启动时发生。

代码示例

基本用法

vb
Private Sub Form_Load()
    With DTPicker1
        .Format = DtpFormatShortDate
        .Value = Date
        .MinDate = #1/1/1900#
        .MaxDate = #12/31/9999#
    End With
End Sub

Private Sub DTPicker1_Change()
    MsgBox "选择的日期: " & DTPicker1.Value
End Sub

自定义格式与回调

vb
Private Sub Form_Load()
    DTPicker1.Format = DtpFormatCustom
    DTPicker1.CustomFormat = "yyyy年MM月dd日 '第' w '周'"
End Sub

Private Sub DTPicker1_FormatString(ByVal CallbackField As String, ByRef FormattedString As String)
    Select Case CallbackField
        Case "w"
            FormattedString = CStr(DatePart("ww", DTPicker1.Value, vbMonday))
    End Select
End Sub

VB6及其LOGO版权为微软公司所有