You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于DateTimePicker展开下拉框时ValueChanged事件触发两次的问询

DateTimePicker展开下拉框时重复触发ValueChanged事件的问题

经测试发现,当DateTimePicker的Value不等于MaxDate时,展开下拉框会两次触发ValueChanged事件:

  • 一次以MaxDate作为值触发
  • 一次以当前Value作为值触发

复现步骤

  1. 将DateTimePicker控件添加到Windows窗体中
  2. 在窗体的Load事件处理程序中添加以下代码:
dateTimePicker1.MinDate = new DateTime(2024, 5, 31);
dateTimePicker1.MaxDate = new DateTime(2024, 6, 2);
dateTimePicker1.Value = dateTimePicker1.MaxDate.AddHours(-1);
  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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:56:06