选择器:
datepicker· 设计器组件: 日期选择器 · 按名称:datepicker#名称或#名称
硬约束与叠画
- 控件名来自窗口 XML「名称」;属性赋值无括号(如
标题 = "确定"),方法调用必须带括号(如刷新())。 - 事件写
函数 控件名.事件名(参数…),形参类型以本页事件表为准。 - 任意控件客户区叠画用支持库 绘制类:
绘制类 g→g.绑组件(本控件名)(组件名无引号)。画布场景编辑见 画布控件。 - 字体对象见绘制文档中的字体类;
置字体(字体类)将字体应用到本控件。 - 不要虚构未列出的方法;YSS 键见下文与 YSS.md。
属性
设计器属性面板与代码侧可读可写属性(来源:组件类库)。
| 属性 | 类型 | 读写 | 说明 |
|---|---|---|---|
提示 |
文本 | 读写 | 鼠标悬停时的提示文字 |
鼠标指针 |
文本 | 读写 | 空=默认;可用 arrow/hand/ibeam/cross/wait/no/sizeall 等预设,或.cur/.ani 路径(如 资源/press.cur) |
左边 |
小数 | 读写 | 相对窗体左边的位置(像素) |
顶边 |
小数 | 读写 | 相对窗体顶边的位置(像素) |
宽度 |
小数 | 读写 | 控件宽度(像素) |
高度 |
小数 | 读写 | 控件高度(像素) |
停靠 |
整数 | 读写 | 0无 1上 2下 3左 4右 5填充;菜单/工具/状态栏仍用专用吸附 |
可见 |
逻辑 | 读写 | 真=显示,假=隐藏 |
启用 |
逻辑 | 读写 | 真=可用,假=禁用 |
句柄 |
长整数 | 只读 | 组件逻辑句柄(1 起,供动画类等绑定;非 HWND);只读 |
当前日期 |
文本 | 读写 | 规范存 YYYY-MM-DD[ HH:mm:ss];空=未选 |
日期 |
文本 | 读写 | 同「当前日期」 |
日期时间 |
文本 | 读写 | 同「当前日期」 |
格式 |
文本 | 读写 | 显示格式,可含时分秒(yyyy-MM-dd HH:mm:ss) |
占位 |
文本 | 读写 | 无日期时显示 |
占位文本 |
文本 | 读写 | 同「占位」 |
可编辑 |
逻辑 | 读写 | 真=允许键盘输入 |
最小 |
文本 | 读写 | 范围下限 |
最大 |
文本 | 读写 | 范围上限 |
最小日期 |
文本 | 读写 | 同「最小」 |
最大日期 |
文本 | 读写 | 同「最大」 |
周次 |
逻辑 | 读写 | 真=弹层显示周次 |
农历 |
逻辑 | 读写 | 真=弹层显示农历 |
节日 |
逻辑 | 读写 | 真=弹层显示节日 |
起始年 |
整数 | 读写 | 年下拉起始年(1-9999);农历有效范围仍为 1900-2100 |
结束年 |
整数 | 读写 | 年下拉结束年(1-9999);默认当前年;农历有效范围仍为 1900-2100 |
圆角 |
整数 | 读写 | 像素,0=直角 |
显示边框 |
逻辑 | 读写 | 真=显示边框 |
边框大小 |
整数 | 读写 | 像素 |
边框颜色 |
文本 | 读写 | 如 #RRGGBB |
文字色 |
文本 | 读写 | 如 #RRGGBB |
背景色 |
文本 | 读写 | 如 #1E1E1E |
方法
组件类库方法(调用必须带括号)。下表为带类型签名。
| 方法 | 签名 | 返回 | 说明 |
|---|---|---|---|
置日期 |
无 置日期(文本 日期) |
无 | YYYY-MM-DD 或带时分秒;也可属性 |
取日期 |
文本 取日期() |
文本 | 空=未选 |
清空 |
无 清空() |
无 | |
打开面板 |
无 打开面板() |
无 | 展开月历 |
关闭面板 |
无 关闭面板() |
无 | |
置今天 |
无 置今天() |
无 | |
面板是否打开 |
逻辑 面板是否打开() |
逻辑 | |
取年 |
整数 取年() |
整数 | 未选=0 |
取月 |
整数 取月() |
整数 | 1–12 |
取日 |
整数 取日() |
整数 | |
取时 |
整数 取时() |
整数 | 0–23 |
取分 |
整数 取分() |
整数 | |
取秒 |
整数 取秒() |
整数 | |
置格式 |
无 置格式(整数 格式码) |
无 | 同基础库日期格式码;0=默认 |
取格式 |
整数 取格式() |
整数 | 0–13 |
移动 |
无 移动(小数 左边, 小数 顶边, [小数 宽度], [小数 高度]) |
无 | 可选同时改宽高 |
置焦点 |
无 置焦点() |
无 | |
刷新 |
无 刷新() |
无 | 立即重绘所在窗口 |
显示 / 隐藏 |
无 显示() / 无 隐藏() |
无 | 等同 可见 = 真/假 |
置字体 |
逻辑 置字体(字体类 字体) |
逻辑 | 见 painter.md |
日期选择器1.置日期("2026-09-04")
输出(日期选择器1.取年())
事件
在代码中写 函数 控件名.事件名(...) 处理。
| 事件 | 参数 | 说明 |
|---|---|---|
单击 |
整数 X, 整数 Y | 鼠标左键单击控件。 |
双击 |
整数 X, 整数 Y | 鼠标左键双击控件。 |
右键单击 |
整数 X, 整数 Y | 鼠标右键单击控件。 |
鼠标按下 |
整数 X, 整数 Y, 逻辑 按下 | 鼠标键在控件上按下。按下=真表示当前仍按住。 |
鼠标抬起 |
整数 X, 整数 Y, 逻辑 按下 | 鼠标键在控件上放开。 |
鼠标移动 |
整数 X, 整数 Y, 逻辑 按下 | 鼠标在控件上移动。按下表示左键是否按住。 |
鼠标进入 |
整数 X, 整数 Y | 鼠标指针进入控件区域。 |
鼠标离开 |
整数 X, 整数 Y | 鼠标指针离开控件区域。 |
鼠标左键单击 |
整数 X, 整数 Y | 鼠标左键单击(与「单击」同时触发)。 |
鼠标左键双击 |
整数 X, 整数 Y | 鼠标左键双击(与「双击」同时触发)。 |
鼠标中间单击 |
整数 X, 整数 Y | 鼠标中键单击控件。 |
鼠标齿轮滚动 |
整数 X, 整数 Y, 逻辑 向上 | 在控件上滚动鼠标滚轮。向上=真表示向上滚。 |
鼠标右键单击 |
整数 X, 整数 Y | 鼠标右键单击(与「右键单击」同时触发)。 |
鼠标右键双击 |
整数 X, 整数 Y | 鼠标右键双击控件。 |
日期改变 |
文本 当前文本 | 当前日期发生变化时触发(选日/选时或置日期)。参数:文本 日期(YYYY-MM-DD 或带时分秒)。 |
即将打开面板 |
无 | 月历弹层即将展开时触发。 |
面板打开 |
无 | 月历弹层已展开后触发。 |
即将关闭面板 |
无 | 月历弹层即将收起时触发。 |
面板关闭 |
无 | 月历弹层已收起后触发。 |
函数 日期选择器1.单击 (整数 X, 整数 Y) {
// …
}
YSS 样式
以下为样式表(.yss)键与示例;写样式前请先读窗体 XML 取控件 名称 与 typeId,见 window-xml.md。
布局与子选择器
形态为紧凑输入框 + 右侧箭头;点击展开月历弹层。日期值统一为 YYYY-MM-DD,格式含时分秒时为 YYYY-MM-DD HH:mm:ss。弹层贴边时会自动上翻或夹入可视区,避免被窗口裁切。
属性说明(逐键)
伪状态: :hover · :focus · :disabled · 子选择器 datepicker:popup
外壳与字体
| 属性 | 作用 | 取值 / 范围 | 说明与注意 |
|---|---|---|---|
color |
输入区文字色 | 颜色,如 #E0E0E0 |
|
background-color / background |
输入区底色 | 颜色 | |
border-color / border-width / border-radius / show-border |
外框描边 | 同按钮 | |
font-size / font-family / font-bold / font-italic |
字体 | 同标签 | |
drop-down-button-background-color |
右侧箭头钮背景 | 颜色 | 别名 arrow-background-color;与弹层底色独立 |
drop-down-button-hover-background-color |
箭头钮悬停背景 | 颜色 | 别名 arrow-hover-background-color |
drop-down-arrow-color |
箭头三角形色 | 颜色 | 别名 arrow-color;亦可 datepicker:drop-down { color } |
值 · 格式 · 占位
| 属性 | 作用 | 取值 / 范围 | 说明与注意 |
|---|---|---|---|
date / value / datetime |
当前日期(时间) | "2026-09-04" 或 "2026-09-04 18:30:00" |
统一 YYYY-MM-DD;含时分秒同上 |
format |
显示格式 | 可含 yyyy-MM-dd、HH:mm:ss |
是否显示时分秒由此决定 |
placeholder |
无值占位文案 | 如 "请选择日期" |
|
placeholder-color |
占位字色 | 颜色 | |
editable |
允许键盘输入 | true/false |
假=仅弹层选择 |
min-date / min |
可选最小日 | 空=不限,如 "2020-01-01" |
|
max-date / max |
可选最大日 | 空=不限 |
弹层开关与年范围
| 属性 | 作用 | 取值 / 范围 | 说明与注意 |
|---|---|---|---|
show-week / week |
显示周次列 | true/false |
|
show-lunar / lunar |
显示农历 | true/false |
|
show-holiday / holiday |
显示节日标注 | true/false |
|
year-start / start-year |
年下拉起始 | 如 1990,夹入 1900–2100 |
万年历有效区间同此 |
year-end / end-year |
年下拉结束 | 如 2035,夹入 1900–2100 |
伪态 · 弹层主题
| 属性 | 作用 | 说明与注意 |
|---|---|---|
hover-background-color / hover-color |
外壳悬停底/字 | 亦可 :hover { … } |
focus-border-color / focus-background-color / focus-glow-color |
焦点边框/底/光晕 | 亦可 :focus { … } |
disabled-color / disabled-background-color |
禁用字/底 | |
popup-background / datepicker:popup { background-color } |
弹层卡片底色 | 映射 backColor2 |
popup-border-radius |
弹层圆角 | 映射 sliceL;0 时主题默认约 12 |
shadow-* / box-shadow |
弹层软阴影 | 未设时主题弹层有默认阴影 |
selected-day-background / accent |
选中日主题色格 | |
selected-day-color |
选中日字色 | |
weekend-color |
周末/节日倾向红字 | |
other-month-color |
邻月淡化色 | 弹层会绘邻月格 |
day-hover-background |
日格悬停底 |
弹层操作
<</>>:上一年 / 下一年</>:上一月 / 下一月- 中间年标题:打开年份下拉
重置:清空并关闭;此刻:选中今天并关闭(含时分秒若格式含时间)- 含时间格式时右侧为「确定」,另有时分秒调节
使用示例
日期时间 + 农历节日:
datepicker#日期选择器1 {
color: #E0E0E0;
background-color: #2D2D30;
border-color: #5A5A5A;
border-radius: 4;
show-border: true;
font-size: 13;
format: yyyy-MM-dd HH:mm:ss;
placeholder: "请选择日期时间";
placeholder-color: #888888;
editable: true;
show-week: true;
show-lunar: true;
show-holiday: true;
year-start: 1990;
year-end: 2035;
drop-down-button-background-color: #3A3A40;
drop-down-button-hover-background-color: #4A4A50;
drop-down-arrow-color: #CCCCCC;
}
仅日期、限定范围:
datepicker#生日 {
format: yyyy-MM-dd;
min-date: "1900-01-01";
max-date: "2100-12-31";
editable: false;
show-lunar: true;
}
白卡主题弹层(--accent 可换绿/粉):
:root { --accent: #00C853; }
datepicker#主题日 {
format: yyyy-MM-dd;
show-lunar: true;
show-holiday: true;
popup-background: #FFFFFF;
popup-border-radius: 12;
accent: var(--accent);
selected-day-color: #FFFFFF;
weekend-color: #E53935;
other-month-color: #BDBDBD;
day-hover-background: #E8F5E9;
shadow-blur: 18;
shadow-offset-y: 6;
}
完整示例
datepicker#日期选择器1 {
color: #E0E0E0;
background-color: #2D2D30;
border-color: #5A5A5A;
border-width: 1;
border-radius: 4;
show-border: true;
font-size: 13;
date: "2026-09-04";
format: yyyy-MM-dd HH:mm:ss;
placeholder: "请选择日期时间";
placeholder-color: #888888;
editable: true;
min-date: "1990-01-01";
max-date: "2035-12-31";
show-week: true;
show-lunar: true;
show-holiday: true;
year-start: 1990;
year-end: 2035;
}
datepicker#日期选择器1:focus {
focus-border-color: #007ACC;
focus-glow-color: #007ACC;
}