WinForm真入门(18)——DateTimePicker控件解析
一、基本概念
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