首页 > 解决方案 > 当日期尚未显示时,DateTimePicker 不起作用

问题描述

我有一个 DateTimePicker 组件的问题,它不能按我的意愿工作。首先,这是 DateTimePickers 的所需行为,形式为:

当用户到达屏幕时,日期为空。然后他单击其中一个,将其激活并显示当前日期。用户现在可以输入日期,或使用日历选择器来选择一个。

对于最初为空的日期,我使用自定义格式并将其设置为“”(空格)。日期在表单加载时用当前日期初始化,但由于这种自定义格式,日期不可见。'Checked' 属性设置为 false。

然后当用户点击它时,它将格式设置为“短”,并显示日期。'Checked' 属性也设置为 true。

有一个函数可以激活或停用 DateTimePicker,具体取决于布尔参数:

Private Sub Activation_date(dtp As DateTimePicker, activation As Boolean)
    If activation And dtp.Checked = False Then
        dtp.Format = DateTimePickerFormat.Short
        dtp.Checked = True
    ElseIf Not activation And dtp.Checked = True Then
        dtp.Format = DateTimePickerFormat.Custom
        dtp.CustomFormat = " "
        dtp.Checked = False
    End If
End Sub

在 Click 事件和 DropDown 事件上调用此函数以显示日期。它们都由这个函数调用组成:

Activation_date(sender, True)

这是问题:当我单击 DateTimePicker 字段时,当前日期正确显示。当我单击下拉按钮打开日历时,日期也会显示。但我无法通过单击日历来选择日期:没有任何反应,日期字段仍包含初始化日期,日历保持打开状态,而不是将日期放在字段中:

日历打开。

我必须关闭它,再次打开它,这一次,它可以工作。

现在,我猜它是由单击下拉菜单时的格式更改引起的,但我找不到它为什么会这样,并且不允许我直接选择日期,而无需关闭并重新打开日历。如我所见,打开日历时,它应该在字段中显示日期,让我选择一个日期,关闭日历。

请注意,当我首先单击日期字段时,它会显示日期,然后当我打开下拉选择器时,它可以正常工作,可能是因为日期格式已经设置。

如果您需要信息或代码,请告诉我。谢谢。

标签: vb.netdatetimepicker

解决方案


推荐阅读