vb.net – 如果用户在DateTimePicker日历中单击日期,如何识别

前端之家收集整理的这篇文章主要介绍了vb.net – 如果用户在DateTimePicker日历中单击日期,如何识别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
用户在没有点击日期的情况下点击日历时,我不希望更改日期.问题是当datepickercalendar打开时总是选择一个日期.我在Calender控件中寻找类似于DateSelected事件的东西

我有一个派生自DateTimePicker的类,它使用带有spacechar字符串的自定义格式,以便为DateTimePicker提供空字段.

我发现stackoverflow中的一篇文章有​​同样的问题,但解决方案不起作用.我没有足够的积分来发表评论(现在无法找到链接:()

至于代码,这就是我所拥有的

Public Class CustomDP
    Inherits System.Windows.Forms.DateTimePicker

    Public Sub New()
        CustomFormat = " "
        Format = System.Windows.Forms.DateTimePickerFormat.Custom
    End Sub

    Protected Overrides Sub OnValueChanged(eventargs As System.EventArgs)
        MyBase.OnValueChanged(eventargs)
    End Sub

    Protected Overrides Sub OnCloseUp(eventargs As System.EventArgs)
        Format = DateTimePickerFormat.Short
        MyBase.OnCloseUp(eventargs)
    End Sub

    Protected Overrides Sub OnDropDown(eventargs As System.EventArgs)
        Format = DateTimePickerFormat.Custom
        MyBase.OnDropDown(eventargs)
    End Sub
End Class
CodeProject上至少有一个DateTimePicker控件允许可为空的日期.但是有一种比这更简单的方法.

在设计中,将ShowCheckBox设置为True.然后,当表单加载或您正在重置字段时,将Checked设置为False.这使得DTP看起来被禁用,这有点不幸,但是当用户打开DTP时,会自动检查复选框.因此,要查看他们是否选择了日期,您需要做的就是评估Checked属性.如果在选择有效日期后取消选中它们,则禁用的外观最终表示该值并不真正计数.

如果您使用较小的版本(ShowUpDown),则控件将被禁用,直到它们首先单击复选框,然后选择要旋转的字段.对于每个字段的每次更改,您仍然会获得一个值更改事件,但这就是它应该如何工作.控件总是有一个有效的日期值,所以你不必检查Nothing等.

原文链接:https://www.f2er.com/vb/255583.html

猜你在找的VB相关文章