关于DateTimePicker展开下拉框时ValueChanged事件触发两次的问询
DateTimePicker展开下拉框时重复触发ValueChanged事件的问题
经测试发现,当DateTimePicker的Value不等于MaxDate时,展开下拉框会两次触发ValueChanged事件:
- 一次以MaxDate作为值触发
- 一次以当前Value作为值触发
复现步骤
- 将DateTimePicker控件添加到Windows窗体中
- 在窗体的Load事件处理程序中添加以下代码:
dateTimePicker1.MinDate = new DateTime(2024, 5, 31); dateTimePicker1.MaxDate = new DateTime(2024, 6, 2); dateTimePicker1.Value = dateTimePicker1.MaxDate.AddHours(-1);
- 绑定ValueChanged事件并添加调试输出代码:
private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { System.Diagnostics.Debug.WriteLine(DateTime.Now.ToString("mm:ss:fff") + " :: " + dateTimePicker1.Value.ToShortDateString() + " __ " + dateTimePicker1.Value.ToShortTimeString()); }
每次展开下拉框时,ValueChanged事件都会触发两次(当Value等于MaxDate时则不会触发,符合预期)。请问该异常行为是由相关设置导致,还是属于“设计如此”的缺陷?
内容的提问来源于stack exchange,提问作者Rekshino
相关产品推荐
相关产品推荐

