如何控制 DateTimePicker 中的时间间隔
我在指定的表单上有一个 DateTimePicker 控件,如下所示:
dtpEntry.Format = DateTimePickerFormat.Custom;
dtpEntry.CustomFormat = "dd/MM/yyyy hh:mm:ss";
dtpEntry.ShowUpDown = true;
我希望用户只能以 5 分钟的增量增加或减少时间。
关于如何实现这一目标有什么建议吗?
I have a DateTimePicker control on a form specified like so:
dtpEntry.Format = DateTimePickerFormat.Custom;
dtpEntry.CustomFormat = "dd/MM/yyyy hh:mm:ss";
dtpEntry.ShowUpDown = true;
I would like the user to only be able to increment or decrement the time by 5 minute increments.
Any suggestions on how one would accomplish this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
可以通过观察 ValueChanged 事件并覆盖该值来实现。这个样本表格效果很好:
It's possible by watching the ValueChanged event and override the value. This sample form worked well:
我对 SixOThree 的答案做了一些更改,以消除 Necromporph 发现的错误。
应该是这样的:
类中
在构造函数的
事件
I've changed a little the answer from SixOThree, to eliminate the bug found by Necromporph.
It should be ok like this:
in the class
in the constructor
the event
或者简单地尝试一下:
Or simply try this:
问题在于,向上/向下控件会自动递增或递减日期/时间选择器当前突出显示的部分(即年/月/日/小时/等)。
您最好在紧邻日期/时间选择器的位置添加自己的向上/向下控件(可能是一个非常小的 vscrollbar),并将其连接起来以从日期/时间选择器的值增加/减少五分钟间隔。
The problem is that the up/down control automatically increments or decrements the currently highlighted portion of the date/time picker (i.e. year/month/day/hour/etc.).
You are probably better off adding your own up/down control (perhaps a very small vscrollbar) immediately adjacent to the date/time picker and wiring it up to increment/decrement five minute intervals from the date/time picker's value.
我知道这是一篇旧文章,但我根据上面的答案创建了一个更好的解决方案来解决这个问题。
在类
的构造函数中
事件
I know this is an old article, but I created a better solution to this problem based on the answer above.
in the class
in the constructor
the event
添加这段代码
你可以之前
you could add this code
before
@Hans Passant 只需要处理 59 即可正常工作。
@Hans Passant Just needed to handle 59 for it to work right.