当前位置: 首页 > news >正文

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

相关文章:

  • 【NVM】管理不同版本的node.js
  • Simulink与C的联合仿真调试
  • 业务校验工具包-validate-utils介绍
  • 【数据可视化-39】2009-2019年亚马逊50大畅销书数据集可视化分析
  • 【网络原理】 网络编程套接字
  • 探索排序算法的奥秘(上):冒泡排序、选择排序、插入排序
  • Babel、core-js、Loader之间的关系和作用全解析
  • 【Google Colab】利用unsloth针对医疗数据集进行大语言模型的快速微调(含跑通原代码)
  • 科技打头阵,创新赢未来——中科视界携千眼狼超高速摄像机亮相第三届科交会
  • 二叉树的前序、中序和后序遍历:详解与实现
  • FastAPI系列06:FastAPI响应(Response)
  • 信号量函数
  • 计算机网络全栈精讲:从 TCP/UDP 原理到 Socket 编程与 HTTP 协议实战(含代码实现)
  • Matlab 报错:尝试将 SCRIPT vl_sift 作为函数执行:
  • Linux 【杂谈】基础知识(一)
  • 双目RealSense系统配置rs_camera.launch----实现D435i自制rosbag数据集到离线场景的slam建图
  • 贪心算法-860.柠檬水找零-力扣(LeetCode)
  • Linux系统编程:信号量Semaphore详解 (IPC)
  • vue3中ref在js中为什么需要.value才能获取/修改值?
  • C++:STL——list
  • 淮安四韵·名城新章: 网络名人领略“运河之都”魅力
  • 【社论】优化限购限行,激发汽车消费潜能
  • 早睡1小时,变化有多惊人?第一个就没想到
  • 绵阳造AI机器狗参与警务工作,演练中辅助民警控制“嫌疑人员”
  • 宣称防老年痴呆的“原装进口”保健品McPee被指涉假,未获澳方销售批准
  • 上海市委常委会传达学习总书记重要讲话精神,研究张江科学城建设等事项