C# 将小时日期时间选择器限制为30分钟的间隔
我在C#中有几个DateTimePicker控件,我需要限制用户仅从30分钟间隔中进行选择,例如9:00-->9:30-->10:00-->10:30等等。这可能吗C# 将小时日期时间选择器限制为30分钟的间隔,c#,datetimepicker,intervals,C#,Datetimepicker,Intervals,我在C#中有几个DateTimePicker控件,我需要限制用户仅从30分钟间隔中进行选择,例如9:00-->9:30-->10:00-->10:30等等。这可能吗 public Form1() { InitializeComponent(); if (dt.Minute % 30 > 15) { initialValue = true; dateTimePicker1.Val
public Form1()
{
InitializeComponent();
if (dt.Minute % 30 > 15)
{
initialValue = true;
dateTimePicker1.Value = dt.AddMinutes(dt.Minute % 30);
}
else
{
initialValue = true;
dateTimePicker1.Value = dt.AddMinutes(-(dt.Minute % 30));
}
_prevDate = dateTimePicker1.Value;
}
private DateTime _prevDate;
private bool initialValue = false;
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
if(initialValue)
{
initialValue = false;
return;
}
DateTime dt = dateTimePicker1.Value;
TimeSpan diff = dt - _prevDate;
if (diff.Ticks < 0)
dateTimePicker1.Value = _prevDate.AddMinutes(-30);
else
dateTimePicker1.Value = _prevDate.AddMinutes(30);
_prevDate = dateTimePicker1.Value;
}
编辑:
我添加的代码将在00或30启动数据采集器,具体取决于与30或00的距离。您需要另一个bool类型的全局变量,它将放置dateTimePicker的初始值。请参阅代码
编辑:
我添加的代码将在00或30启动数据采集器,具体取决于与30或00的距离。您需要另一个bool类型的全局变量,它将放置dateTimePicker的初始值。查看代码。@Grantwiney您可以像我显示的那样执行。请检查我的实现。@Grantwiney您可以像我显示的那样执行。请检查我的实现。@Grantwiney可以从00或30开始执行。这不是问题。如果你问that@GrantWinney在这里我添加代码从00或30开始。太好了!!!就像一个符咒,@mybirthname!!谢谢!在第一个“if”大括号中,有一个错误。正确的行是:
dateTimePicker1.Value=dt.AddMinutes(30-dt.Minute%30)代码>@GrantWinney可以从00或30开始这不是问题。如果你问that@GrantWinney在这里我添加代码从00或30开始。太好了!!!就像一个符咒,@mybirthname!!谢谢!在第一个“if”大括号中,有一个错误。正确的行是:dateTimePicker1.Value=dt.AddMinutes(30-dt.Minute%30)代码>
this.dateTimePicker2.CustomFormat = "dd/MM/yyyy hh:mm";
this.dateTimePicker2.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dateTimePicker2.ShowUpDown = true;