datetimepicker control
本文关键字:control datetimepicker | 更新日期: 2023-09-27 17:53:30
当用户在DateTimePickerControl中选择某个日期时,应该触发哪个事件?我使用了dateTimePicker1_ValueChanged()。但是,即使用户滚动到日期时间选择器,它也会被触发。
我只想让它只在用户做一些改变时被触发。就像一个组合框selectionchagedcommitted事件
查看MSDN文档。特别是 onvaluechange 事件
您需要使用以下事件将控件连接起来:
在构造方法中:
dateTimePickerControl.ValueChanged += new EventHandler(picker_ValueChanged);
这里是方法签名:
void f_ValueChanged(object sender, EventArgs e)
{
//Do whatever you need when the value changes here
}
您也可以在设计器中执行此操作。如果转到Properties,然后转到Events部分,它会列出所有事件。只需双击,它就会为您创建方法签名和连接。
UPDATE TO YOUR UPDATE
如果你特别想检查这是否是一个编程更改,那么你需要这样做:
在你的类中创建一个全局变量
Boolean isProgrammaticEvent = false;
程序更改前:
isProgrammaticEvent = true;
//Change picker value
在你的事件布线中:
void f_ValueChanged(object sender, EventArgs e)
{
Boolean isThisProgrammatic = isProgrammaticEvent;
isProgrammaticEvent = false;
if(isThisProgrammatic)
return;
}
试试MouseCaptureChanged()。滚动时不会触发
private void dateTimePicker1_MouseCaptureChanged(object sender, EventArgs e)
{
DateTime result = dateTimePicker1.Value;
MessageBox.Show(result.ToString());
}