YStudio Y++

文本框(textbox)

Y++ / YStudio 开发文档 · 一点滴

选择器: textbox · 设计器组件: 文本框 / 多行文本框 · 按名称: textbox#名称 或 #名称
用途: 单行/多行输入。

硬约束与叠画

  1. 控件名来自窗口 XML「名称」;属性赋值无括号(如 标题 = "确定"),方法调用必须带括号(如 刷新())。
  2. 事件写 函数 控件名.事件名(参数…),形参类型以本页事件表为准。
  3. 任意控件客户区叠画用支持库 绘制类:绘制类 g → g.绑组件(本控件名)(组件名无引号)。画布场景编辑见 画布控件。
  4. 字体对象见绘制文档中的字体类;置字体(字体类) 将字体应用到本控件。
  5. 不要虚构未列出的方法;YSS 键见下文与 YSS.md。

属性

设计器属性面板与代码侧可读可写属性(来源:组件类库)。

属性 类型 读写 说明
提示 文本 读写 鼠标悬停时的提示文字
鼠标指针 文本 读写 空=默认;可用 arrow/hand/ibeam/cross/wait/no/sizeall 等预设,或.cur/.ani 路径(如 资源/press.cur)
左边 小数 读写 相对窗体左边的位置(像素)
顶边 小数 读写 相对窗体顶边的位置(像素)
宽度 小数 读写 控件宽度(像素)
高度 小数 读写 控件高度(像素)
停靠 整数 读写 0无 1上 2下 3左 4右 5填充;菜单/工具/状态栏仍用专用吸附
可见 逻辑 读写 真=显示,假=隐藏
启用 逻辑 读写 真=可用,假=禁用
句柄 长整数 只读 组件逻辑句柄(1 起,供动画类等绑定;非 HWND);只读
文本 文本 读写 当前内容;可读可写
自动折行 逻辑 读写 真=多行自动换行
显示滚动条 整数 读写 1=不显示,2=纵向,3=横向,4=两者;仅内容超出可视区时显示
滚动条宽度 整数 读写 6~32 像素
行间距 整数 读写 行高倍数×100,如 120=1.20 倍;0=默认 1.20
滚动位置 整数 读写 垂直滚动像素偏移(运行时);可读可写
光标位置 整数 读写 插入符在文本中的字符索引;可读可写
只读 逻辑 读写 真=不可编辑(仍可选中/复制);假=可编辑
最大长度 整数 读写 可输入/载入的最大字符数;0=默认(单行约 2K,多行/超级约 200M)
密码覆盖符 文本 读写 密码模式下的遮罩字符,默认 ●;只取首字符
输入限制 整数 读写 0=无,1=仅数字,2=仅字母,3=字母数字,4=仅英文(A-Z/a-z)
字体 文本 读写 字体名称,如 微软雅黑;读写:组件.字体 / 组件.字体 = “…”
字号 整数 读写 像素;读写:组件.字号 / 组件.字号 = 16
粗体 逻辑 读写 真=粗体;读写:组件.粗体 / 组件.粗体 = 真
斜体 逻辑 读写 真=斜体;读写:组件.斜体 / 组件.斜体 = 真
对齐 整数 读写 0=左对齐,1=居中,2=右对齐
文字色 文本 读写 如 #FFFFFF 或 #RRGGBB
背景色 文本 读写 如 #3E3E42 或 #RRGGBB
描边样式 整数 读写 0=实线,1=虚线,2=点线,3=点划线,4=双点划线
焦点边框色 文本 读写 如 #0096FF
焦点背景色 文本 读写 如 #RRGGBB
焦点发光色 文本 读写 如 #0096FF

方法

组件类库方法(调用必须带括号)。

方法 签名 返回 取值/说明
加入文本 无 加入文本(文本 内容) 无 末尾追加
清空 无 清空() 无 等同 文本 = ""
选中全部 无 选中全部() 无
取选中文本 文本 取选中文本() 文本 无选区→空
取字符数 整数 取字符数([逻辑 全部]) 整数 真=整框;假=选区长度
置焦点色 无 置焦点色([文本 边框色="#0096FF"], [文本 背景色=""], [文本 发光色="#0096FF"]) 无
置边框 无 置边框([逻辑 显示边框=真], [整数 边框大小=1], [文本 边框颜色], [整数 描边样式]) 无
移动 无 移动(小数 左边, 小数 顶边, [小数 宽度], [小数 高度]) 无
置焦点 无 置焦点() 无
刷新 无 刷新() 无
显示 无 显示() 无 等同 可见 = 真
隐藏 无 隐藏() 无 等同 可见 = 假
置字体 逻辑 置字体(字体类 字体) 逻辑 painter.md
文本框1.加入文本("hello")
输出(文本框1.取字符数(真))
文本框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 鼠标右键双击控件。
获得焦点 无 控件获得键盘焦点。
失去焦点 无 控件失去键盘焦点。
按键按下 整数 键码, 整数 Shift, 逻辑 Ctrl, 整数 组合键 按键按下(含自动重复)。Shift=是否按住Shift;Ctrl=是否按住Ctrl;组合键=1/2/4 位标志。
按下某键 整数 键码, 整数 Shift, 逻辑 Ctrl, 整数 组合键 某键刚被按下的第一下(不含自动重复)。
按住某键 整数 键码, 整数 Shift, 逻辑 Ctrl, 整数 组合键 按住某键触发的自动重复。
抬起某键 整数 键码, 整数 Shift, 逻辑 Ctrl, 整数 组合键 某键被放开。
内容改变 文本 当前文本 文本框内容发生变化。
文本改变 文本 当前文本 文本框文本发生变化(与「内容改变」同时触发)。
函数 文本框1.单击 (整数 X, 整数 Y) {
    // …
}

YSS 样式

以下为样式表(.yss)键与示例;写样式前请先读窗体 XML 取控件 名称 与 typeId,见 window-xml.md。

样式概览

密码、输入限制等见「非 YSS」。

伪状态与映射

伪状态: :hover · :focus · :disabled

伪态映射:

伪态块 实际字段
:focus { border-color } / background-color focus-border-color / focus-background-color
:hover { … } hover-*(若写入)
:disabled { color } / background-color disabled-color / disabled-background-color

属性说明(逐键)

文字与字体

属性 作用 取值 / 范围 说明与注意
color 输入文字色 颜色
font-size / font-family / font-bold / font-italic 字体 同标签
text-align 水平对齐 left/center/right

底板与描边

属性 作用 取值 / 范围 说明与注意
background-color / background 底板色 颜色
transparent-background 不铺底 true/false
border-color / border-width / border-radius / show-border 描边 同按钮
padding / padding-* 内容区内边距 像素 单行左右 padding 常见 8
word-wrap 多行自动折行 true/false 多行控件常用

占位符

属性 作用 取值 / 范围 说明与注意
placeholder / placeholder-text 空内容时提示文案 字符串 写入控件提示/占位槽
placeholder-color 占位符颜色 颜色,如 #888888 旁路表;空内容时绘制灰字

焦点 / 禁用

属性 作用 说明与注意
focus-border-color 焦点边框色 获焦时描边
focus-background-color 焦点底板色
focus-glow-color 焦点光晕色
disabled-color / disabled-background-color 禁用文字 / 底板

多行滚动条

属性 作用 取值 / 范围 说明与注意
scrollbar-width 滚动条宽度 约 4–24 多行有效
scrollbar-thumb-color 滑块色 颜色
scrollbar-track-color 轨道色 颜色
scrollbar-color 简写 thumb track 两色 如 #787878 #282828

使用示例

textbox#输入框1 {
    color: #E0E0E0;
    background-color: #1E1E1E;
    border-color: #5A5A5A;
    border-width: 1;
    border-radius: 4;
    show-border: true;
    font-size: 13;
    padding-left: 8;
    padding-right: 8;
    placeholder: "请输入…";
    placeholder-color: #888888;
}

textbox#输入框1:focus {
    focus-border-color: #007ACC;
    focus-background-color: #252526;
    focus-glow-color: #007ACC;
}

textbox#备注 {
    word-wrap: true;
    background-color: #2D2D30;
    border-radius: 6;
    scrollbar-width: 10;
    scrollbar-color: #787878 #282828;
}

完整示例

textbox {
    color: #E0E0E0;
    background-color: #1E1E1E;
    border-color: #5A5A5A;
    border-width: 1;
    border-radius: 4;
    show-border: true;
    font-size: 13;
}

textbox#搜索 {
    placeholder: "搜索…";
    placeholder-color: #777777;
    padding: 0 10;
}

textbox#搜索:focus {
    focus-border-color: #007ACC;
    focus-glow-color: #007ACC;
}