本文介绍了如何控逆变的时间间隔在一个DateTimePicker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个的DateTimePicker 像这样指定表格控件:
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;
我想用户只能够增加或5分钟为增量递减的时间。
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?
推荐答案
这是可能的通过观看ValueChanged事件和覆盖价值。此示例的形式运作良好:
It's possible by watching the ValueChanged event and override the value. This sample form worked well:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
dateTimePicker1.CustomFormat = "dd/MM/yyyy hh:mm";
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.ShowUpDown = true;
dateTimePicker1.Value = DateTime.Now.Date.AddHours(DateTime.Now.Hour);
mPrevDate = dateTimePicker1.Value;
dateTimePicker1.ValueChanged += new EventHandler(dateTimePicker1_ValueChanged);
}
private DateTime mPrevDate;
private bool mBusy;
private void dateTimePicker1_ValueChanged(object sender, EventArgs e) {
if (!mBusy) {
mBusy = true;
DateTime dt = dateTimePicker1.Value;
if ((dt.Minute * 60 + dt.Second) % 300 != 0) {
TimeSpan diff = dt - mPrevDate;
if (diff.Ticks < 0) dateTimePicker1.Value = mPrevDate.AddMinutes(-5);
else dateTimePicker1.Value = mPrevDate.AddMinutes(5);
}
mBusy = false;
}
mPrevDate = dateTimePicker1.Value;
}
}
这篇关于如何控逆变的时间间隔在一个DateTimePicker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!