一、基本概念
DateTimePicker 是 Windows 窗体中用于选择日期和时间的控件,支持以下交互方式:
- 通过下拉日历选择日期
 - 通过上下按钮调整时间
 - 直接输入日期或时间
适用于需要规范日期格式、限制日期范围或快速输入的场景(如预约系统、数据筛选)。 
二、核心属性
| 属性 | 描述 | 示例/默认值 | 
|---|---|---|
| Value | 当前选中的日期/时间(默认当前系统时间) | DateTime.Now | 
| MinDate | 允许选择的最小日期 | MinDate = new DateTime(2000,1,1) | 
| MaxDate | 允许选择的最大日期 | MaxDate = DateTime.Today | 
| Format | 显示格式(Long/Short/Time/Custom) | Format = DateTimePickerFormat.Custom | 
| CustomFormat | 自定义显示格式(需配合 Format 属性) | CustomFormat = “yyyy-MM-dd HH:mm” | 
| ShowCheckBox | 显示复选框(用于允许空值) | ShowCheckBox = true | 
| ShowUpDown | 用上下按钮替代下拉日历(适用于时间选择) | ShowUpDown = true | 
三、常用方法
1、事件 ValueChanged
 当用户修改日期/时间时触发,常用于实时更新界面。
dateTimePicker1.ValueChanged += (s, e) => {label1.Text = "选择日期:" + dateTimePicker1.Value.ToString("yyyy-MM-dd");
};
 
2、设置自定义格式
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MMMM dd, yyyy"; // 如 "April 27, 2025" :ml-citation{ref="6,8" data="citationList"}
 
3、验证日期范围
if (dateTimePicker1.Value < dateTimePicker1.MinDate) {MessageBox.Show("日期不能早于最小值!");
}
 
四、典型使用案例
- 限制日期选择范围
 
dateTimePicker1.MinDate = new DateTime(2000, 1, 1);
dateTimePicker1.MaxDate = DateTime.Today.AddDays(30); // 允许选择未来30天 :ml-citation{ref="3,8" data="citationList"}
 
- 时间选择模式
 
dateTimePicker1.Format = DateTimePickerFormat.Time;
dateTimePicker1.ShowUpDown = true;  // 使用上下按钮调整时间 :ml-citation{ref="1,3" data="citationList"}
 
- 空值处理(结合复选框)
 
dateTimePicker1.ShowCheckBox = true;
dateTimePicker1.Checked = false;  // 初始未选中,值为 null