Vb.net 日期时间选择器不';如果日期尚未显示,则无法工作

Vb.net 日期时间选择器不';如果日期尚未显示,则无法工作,vb.net,datetimepicker,Vb.net,Datetimepicker,我有一个DateTimePicker组件的问题,它不能像我想要的那样工作。首先,以下是DateTimePicker想要的行为: 当用户到达屏幕时,日期为空。然后他点击其中一个按钮,激活它并显示当前日期。用户现在可以键入日期,或使用日历选择器选择一个日期 对于最初为空的日期,我使用自定义格式并将其设置为“”(空格)。该日期在加载表单时以当前日期初始化,但由于此自定义格式,因此不可见。“Checked”属性设置为false 然后,当用户单击时,它将格式设置为“Short”,并显示日期。“Checke

我有一个DateTimePicker组件的问题,它不能像我想要的那样工作。首先,以下是DateTimePicker想要的行为:

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

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

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

根据布尔参数,有一个函数可以激活或停用日期时间选择器:

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
单击事件和下拉事件都会调用此函数,以显示日期。它们都由以下函数调用组成:

Activation_date(sender, True)
问题是: 单击DateTimePicker字段时,当前日期会正确显示。当我点击下拉按钮打开日历时,日期也会显示出来。但我无法通过在日历中单击来选择日期:不会发生任何情况,日期字段仍然包含初始化的日期,并且日历保持打开状态,而不是将日期放在字段中:

我必须关闭它,第二次打开它,这一次,它工作了

现在,我猜这是由于我点击下拉菜单时格式的改变造成的,但我不知道为什么它会这样,不让我直接选择日期,而不必关闭并重新打开日历。在我看来,当打开日历时,它应该在字段中显示日期,让我选择一个日期,关闭日历

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


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

听起来像是一篇文章。总结问题是好的。也许还有……等等?谢谢,是的,这就是我隐藏日期的方法:使用自定义格式(“”),并在我希望显示日期时将其设置回原位。但这对我关于下拉列表的问题没有帮助。