YStudio Y++

超级文本框(supertextbox)

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

选择器: supertextbox · 设计器组件: 超级文本框 · 按名称: supertextbox#名称 或 #名称

硬约束与叠画

  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

方法

调用必须带括号。字符下标从 0 起;行号从 1 起(跳到行/取当前行)。字体见 绘制类·字体类。编码常量见 encoding-support.md(如 #编码_UTF8=65001)。下表由元数据生成(带类型签名)。

常用常量

项 取值
换行风格 0 LF · 1 CRLF
预览格式 0纯文本编辑 · 1HTML 只读 · 2Markdown 只读
载入/保存/撤销等 成功多返回 1,失败 0;跳到行/书签失败 -1

大文件:约 ≥4MB 可进虚拟窗口(不全量进内存);开始编辑() 尝试全文载入。

方法 签名 返回 说明
加入文本 无 加入文本(文本 内容) 无 在超级文本框当前内容末尾追加一段文本。
清空 无 清空() 无 清空超级文本框内容(等同 文本 = “”)。
选中全部 无 选中全部() 无 选中超级文本框内全部文字。
取选中文本 文本 取选中文本() 文本 返回当前选中的文字;无选区时返回空文本。
取字符数 整数 取字符数([逻辑 全部=真]) 整数 返回字符数。全部=真取整框;全部=假取当前选中文本长度。
置焦点色 无 置焦点色([文本 边框色="#0096FF"], [文本 背景色=""], [文本 发光色="#0096FF"]) 无 设置焦点状态的边框色、背景色与发光色。
滚到顶部 无 滚到顶部() 无 将超级文本框滚动到内容顶部。
滚到底部 无 滚到底部() 无 将超级文本框滚动到内容底部。
取滚动位置 整数 取滚动位置() 整数 返回当前垂直滚动偏移(像素)。
置滚动位置 无 置滚动位置(整数 位置) 无 设置垂直滚动偏移(像素)。
取最大滚动 整数 取最大滚动() 整数 返回可滚动的最大垂直偏移(像素)。
取光标位置 整数 取光标位置() 整数 返回插入符在文本中的字符索引。
置光标位置 无 置光标位置(整数 位置) 无 将插入符移动到指定字符索引。
取行数 整数 取行数() 整数 返回文本行数(按换行符计)。
插入文本 无 插入文本(整数 位置, 文本 内容) 无 在指定字符位置插入一段文本。
载入文件 整数 载入文件(文本 路径, [常量 编码=#编码_UTF8], [逻辑 保留格式=真], [逻辑 自动识别编码=真]) 整数 从磁盘载入并替换超级文本框内容。小/中文件 mmap 快载;约 ≥4…
查找 整数 查找(文本 关键字, [整数 起始位置=0], [逻辑 区分大小写=假], [逻辑 全词匹配=假], [逻辑 正则=假]) 整数 从指定位置查找;找到则选中(高亮)并返回起始下标,未找到返回 -1。…
查找下一个 整数 查找下一个(文本 关键字, [逻辑 区分大小写=假], [逻辑 全词匹配=假], [逻辑 正则=假]) 整数 从当前选区末/光标(虚拟模式从上次命中字节之后)继续查找;找到则选中…
查找上一个 整数 查找上一个(文本 关键字, [逻辑 区分大小写=假], [逻辑 全词匹配=假], [逻辑 正则=假]) 整数 从当前选区起/光标向前查找上一处;找到则选中并返回下标,未找到 -1…
查找全部 整数 查找全部(文本 关键字, [整数 起始=0], [逻辑 区分大小写=假], [逻辑 全词匹配=假], [逻辑 正则=假], [逻辑 高亮=真]) 整数 枚举全部命中并缓存;可选绘制命中底色。返回命中数(上限约 1 万)。…
取查找命中位置 整数 取查找命中位置(整数 序号) 整数 返回「查找全部」缓存中第 序号 处起始字符下标(0 起序号);无效 …
取查找命中长度 整数 取查找命中长度(整数 序号) 整数 返回命中字符长度;无效 0。
取查找命中行 整数 取查找命中行(整数 序号) 整数 返回命中所在行号(从 1 起);无效 0。适合做结果列表。
清除查找高亮 无 清除查找高亮() 无 清除「查找全部」产生的命中缓存与底色高亮。
取首可视行 整数 取首可视行() 整数 返回当前可视区第一行行号(从 1 起)。
取末可视行 整数 取末可视行() 整数 返回当前可视区末行行号(从 1 起,约等于首行+可视行数)。
取已修改 整数 取已修改() 整数 返回脏标记:1=自上次载入/保存后已改,0=未改。可用「置已修改」手…
置已修改 无 置已修改(逻辑 是否) 无 设置脏标记;会触发「已修改改变」事件。载入/保存成功时运行时会自动清零。
跳到行 整数 跳到行(整数 行号) 整数 将光标移到指定行行首(行号从 1 起);成功返回 0,失败返回 -1。
替换 整数 替换(文本 查找, 文本 替换为, [整数 起始=0], [逻辑 区分大小写=假], [逻辑 全词匹配=假], [逻辑 正则=假]) 整数 查找第一处并替换;成功返回匹配起始下标,未找到返回 -1。正则命中按…
全部替换 整数 全部替换(文本 查找, 文本 替换为, [整数 起始=0], [逻辑 区分大小写=假], [逻辑 全词匹配=假], [逻辑 正则=假]) 整数 从起始位置起替换全部匹配项,返回替换次数。
取查找命中数 整数 取查找命中数(文本 关键字, [整数 起始位置=0], [逻辑 区分大小写=假], [逻辑 全词匹配=假], [逻辑 正则=假]) 整数 统计匹配次数,不改内容、不改选区。单次最多约 50 万,防误扫卡死。
滚到选区 无 滚到选区() 无 将当前选区/光标滚入可视区。
加入书签 整数 加入书签([整数 行号=0]) 整数 在指定行加入书签(省略则当前行);同行已存在则返回原序号。返回书签序…
跳到书签 整数 跳到书签(整数 序号) 整数 跳到指定书签行;成功返回 0,失败 -1。
取书签数 整数 取书签数() 整数 返回当前书签数量。
取书签行 整数 取书签行(整数 序号) 整数 返回书签对应行号(从 1 起);无效返回 0。
清除书签 整数 清除书签([整数 序号=-1]) 整数 清除指定书签;省略或传 -1 清除全部。返回剩余数量。
重新载入 整数 重新载入() 整数 按上次载入的路径与编码重新从磁盘载入;无历史路径返回 0。若已置跟随…
置跟随末尾 无 置跟随末尾(逻辑 是否) 无 是否在重新载入成功后自动滚到底。默认关;加入文本仍会滚底。
取跟随末尾 逻辑 取跟随末尾() 逻辑 返回是否开启跟随末尾。
置换行风格 无 置换行风格(整数 风格) 无 保存时换行:0=LF,1=CRLF。载入后会尽量跟随文件;虚拟模式同…
取换行风格 整数 取换行风格() 整数 返回当前保存用换行风格:0=LF,1=CRLF。
置浏览模式 无 置浏览模式(逻辑 是否) 无 浏览模式禁止键入/粘贴/替换等写操作(含虚拟补丁);与「只读」叠加。…
取浏览模式 逻辑 取浏览模式() 逻辑 返回是否处于浏览模式。
撤销 整数 撤销() 整数 撤销上一步编辑;成功返回 1,无可撤销返回 0。虚拟模式支持当前窗口…
重做 整数 重做() 整数 重做上一步已撤销的编辑;成功返回 1,否则返回 0。
可撤销 逻辑 可撤销() 逻辑 当前是否有可撤销的编辑步骤(含虚拟窗口缓冲内)。
可重做 逻辑 可重做() 逻辑 当前是否有可重做的编辑步骤。
取选区起 整数 取选区起() 整数 返回当前选区起始字符下标(无选区时等于光标位置)。
取选区止 整数 取选区止() 整数 返回当前选区结束字符下标(半开区间,止可等于起)。
取选区 整数 取选区() 整数 返回当前选区起始字符下标(同「取选区起」)。
置选区 无 置选区(整数 起, 整数 止) 无 设置选区字符范围(半开区间 [起, 止))。
复制 整数 复制() 整数 将当前选区复制到剪贴板。多行无选区时不复制(返回 0);单行无选区时…
剪切 整数 剪切() 整数 将当前选区剪切到剪贴板。多行无选区时不剪切;只读或虚拟超限时失败。
粘贴 整数 粘贴() 整数 在光标/选区处粘贴剪贴板文本;多行保留换行。成功返回 1。
删除选区 整数 删除选区() 整数 删除当前选中文字(不写入剪贴板)。无选区返回 0。
取当前行 整数 取当前行() 整数 返回插入符所在行号(从 1 起,与「跳到行」一致)。
取当前列 整数 取当前列() 整数 返回插入符在当前行内的列号(从 1 起)。
取行文本 文本 取行文本(整数 行号) 文本 返回指定行的文本(不含行尾换行);行号从 1 起;越界返回空文本。
取文本范围 文本 取文本范围(整数 起始, 整数 结束) 文本 返回字符半开区间 [起始,结束) 的文本;越界夹紧。虚拟模式仅当前窗…
取行文本范围 文本 取行文本范围(整数 起行, 整数 止行) 文本 返回行号闭区间 [起行,止行] 的文本(从 1 起);行间为 \n。
取文件字节范围 文本 取文件字节范围(整数 字节起, 整数 字节止) 文本 虚拟模式下按相对文件数据区的字节半开区间解码为文本;非虚拟或失败返回…
保存文件 整数 保存文件(文本 路径, [常量 编码=0]) 整数 将当前内容写入磁盘。虚拟窗口模式可按原映射直接写出;编码省略时用载入…
显示行号 无 显示行号(逻辑 是否) 无 开关左侧行号栏显示。
取显示行号 逻辑 取显示行号() 逻辑 返回是否正在显示行号。
置内容字体 逻辑 置内容字体(字体类 字体) 逻辑 将「字体类」应用到超级文本框正文(同 置字体 / 字体.应用到内容)。
置行号字体 逻辑 置行号字体(字体类 字体) 逻辑 将「字体类」应用到左侧行号栏(文本色/背景色/字体/字号/粗体/倾斜)。
置自动折行 无 置自动折行(逻辑 是否) 无 开关软换行。大文件/虚拟窗口按视觉行滚动(宽度估算折行);取行数/跳…
取自动折行 逻辑 取自动折行() 逻辑 返回是否开启自动折行(软换行)。
加入关键字色 整数 加入关键字色(文本/文本数组 关键字, [文本 前景色="#FF5555"], [文本 背景色=""], [逻辑 区分大小写=假]) 整数 为可见文本叠加关键字着色。关键字可为文本或文本数组(批量同色)。控件…
清除关键字色 整数 清除关键字色([文本 关键字=""]) 整数 清除关键字着色规则。省略关键字则全部清除。返回剩余规则数。
取关键字色数 整数 取关键字色数() 整数 返回当前关键字着色规则条数。
加入语法规则 整数 加入语法规则(整数 类型, 文本/文本数组 模式, [文本 前景色="#569CD6"], [文本 背景色=""], [文本 结束模式=""], [逻辑 区分大小写=假], [逻辑 全词匹配=假]) 整数 注册用户自定义着色规则(无内置语言)。模式可为文本或文本数组(批量同…
清除语法规则 整数 清除语法规则([文本 模式=""]) 整数 清除用户语法规则。省略模式则全部清除。返回剩余规则数。
取语法规则数 整数 取语法规则数() 整数 返回当前用户语法规则条数。
加入折叠区 整数 加入折叠区(整数 起行, 整数 止行) 整数 登记折叠区(硬行号 1 起)。仅存数据与折叠标记,不绘制折叠符、不自…
清除折叠区 整数 清除折叠区([整数 序号=-1]) 整数 清除折叠区;省略或 -1=全部。返回剩余数量。
取折叠区数 整数 取折叠区数() 整数 返回折叠区数量。
取折叠区起 整数 取折叠区起(整数 序号) 整数 返回折叠区起行(1 起);无效 0。
取折叠区止 整数 取折叠区止(整数 序号) 整数 返回折叠区止行(1 起);无效 0。
置折叠 整数 置折叠(整数 序号, 逻辑 是否) 整数 设置折叠标记。开启「置折叠绘制跳过」后才会藏行;默认可先只存标记。
取折叠 逻辑 取折叠(整数 序号) 逻辑 返回是否已折叠标记。
是否折叠行 逻辑 是否折叠行(整数 行号) 逻辑 行是否落在任一已折叠区内(不含起行本身,便于仍显示折叠头)。
置折叠绘制跳过 无 置折叠绘制跳过(逻辑 是否) 无 开启后引擎按折叠标记藏行(滚动/绘制跳过已折叠体);默认关。不内置折…
取折叠绘制跳过 逻辑 取折叠绘制跳过() 逻辑 是否已开启折叠绘制跳过。
置折叠标记绘制 无 置折叠标记绘制(逻辑 是否) 无 可选:在行号栏画简易折叠三角。点击切换请在「行号栏点击」事件里置折叠…
取折叠标记绘制 逻辑 取折叠标记绘制() 逻辑 是否绘制可选折叠三角。
取折叠区于行 整数 取折叠区于行(整数 行号) 整数 若该硬行是某折叠区起行则返回序号,否则 -1。供自绘折叠头。
取行号栏左 整数 取行号栏左() 整数 行号栏左边(表单客户区 DIP)。无行号栏返回 -1。
取行号栏顶 整数 取行号栏顶() 整数 行号栏顶边(含标题栏偏移的客户区 DIP)。
取行号栏宽 整数 取行号栏宽() 整数 行号栏宽度 DIP。
取行号栏高 整数 取行号栏高() 整数 行号栏高度 DIP。
取行顶边 整数 取行顶边(整数 行号) 整数 硬行顶边 Y(客户区 DIP);折叠藏行时对齐可见头。供小地图/叠层。
取坐标行 整数 取坐标行(整数 客户区Y) 整数 客户区 Y → 硬行号(1 起);考虑软折行与折叠视觉图。
采样小地图 整数 采样小地图([整数 起行=1], [整数 止行=0], [整数 桶数=120]) 整数 按硬行范围采样密度/颜色提示,供画布自绘小地图。返回采样条数。
取小地图采样数 整数 取小地图采样数() 整数 最近一次「采样小地图」的条数。
取小地图采样行 整数 取小地图采样行(整数 序号) 整数 采样对应的硬行号(1 起)。
取小地图采样密度 整数 取小地图采样密度(整数 序号) 整数 采样密度 0..100(行字符量启发)。
取小地图采样色 文本 取小地图采样色(整数 序号) 文本 采样颜色提示(#RRGGBB;优先关键字/富文本色)。
加入附加光标 整数 加入附加光标(整数 位置, [整数 选区锚点=-1]) 整数 登记附加光标/选区(基建)。控件不自动多光标编辑;主光标仍用「光标位…
清除附加光标 整数 清除附加光标() 整数 清除全部附加光标。
取附加光标数 整数 取附加光标数() 整数 返回附加光标数量(不含主光标)。
取附加光标位置 整数 取附加光标位置(整数 序号) 整数 返回附加光标字符下标;无效 -1。
取附加光标锚点 整数 取附加光标锚点(整数 序号) 整数 返回附加选区锚点;无选区或无效 -1。
置附加光标 整数 置附加光标(整数 序号, 整数 位置, [整数 选区锚点=-1]) 整数 更新附加光标。
取样式段数 整数 取样式段数() 整数 返回富文本样式 run 数量(无显式样式时 0)。供用户枚举/导出,…
取样式段起点 整数 取样式段起点(整数 序号) 整数 样式段起始字符下标。
取样式段长度 整数 取样式段长度(整数 序号) 整数 样式段长度。
取样式段粗体 整数 取样式段粗体(整数 序号) 整数 样式段粗体标志。
取样式段斜体 整数 取样式段斜体(整数 序号) 整数 样式段斜体标志。
取样式段下划线 整数 取样式段下划线(整数 序号) 整数 样式段下划线标志。
取样式段字号 整数 取样式段字号(整数 序号) 整数 样式段字号(0=继承)。
取样式段前景色 文本 取样式段前景色(整数 序号) 文本 样式段前景色(如 #RRGGBB;空=继承)。
取样式段背景色 文本 取样式段背景色(整数 序号) 文本 样式段背景色;空=无。
取导出片段 文本 取导出片段(整数 起行, 整数 止行, [整数 格式=0]) 文本 按硬行导出片段。格式 0=纯文本,1=简易 HTML(转义+br)。…
取虚拟窗口起行 整数 取虚拟窗口起行() 整数 虚拟模式下当前窗口起始硬行(1 起);非虚拟或未开窗返回 0。仅查询…
取虚拟窗口行数 整数 取虚拟窗口行数() 整数 虚拟模式窗口缓冲行数;非虚拟返回 0。
是否虚拟脏 逻辑 是否虚拟脏() 逻辑 虚拟窗口缓冲是否有未刷回磁盘的修改。
取虚拟源路径 文本 取虚拟源路径() 文本 虚拟模式载入源路径;非虚拟返回空。
取IME客户区X 整数 取IME客户区X() 整数 焦点在本控件时返回插入符客户区 X(像素);否则 -1。供用户自绘候…
取IME客户区Y 整数 取IME客户区Y() 整数 焦点在本控件时返回插入符客户区 Y(像素);否则 -1。
置显示空白 无 置显示空白(逻辑 是否) 无 叠加显示空格/制表/换行标记(淡色圆点、箭头、拐角)。仅可视切片;不…
取显示空白 逻辑 取显示空白() 逻辑 返回是否正在显示空白标记。
开始编辑 整数 开始编辑() 整数 虚拟窗口模式下尝试将全文载入内存;成功则退出虚拟模式。失败(超最大长…
是否虚拟模式 逻辑 是否虚拟模式() 逻辑 当前是否处于超大文件虚拟窗口模式(不全量进内存)。
取文件字节数 整数 取文件字节数() 整数 虚拟模式下返回源文件字节大小;非虚拟模式返回 -1。
取文件编码 整数 取文件编码() 整数 返回载入文件时识别/使用的代码页(如 65001=UTF-8)。
置选区样式 无 置选区样式([逻辑 粗体=假], [逻辑 斜体=假], [逻辑 下划线=假], [文本 前景色=""], [文本 背景色=""], [整数 字号=0]) 无 为当前选区应用字符样式(整体替换该段样式)。无选区时仍记住样式,后续…
置选区加粗 无 置选区加粗([逻辑 是否=真]) 无 仅合并选区粗体标志(保留其它样式);无选区时影响后续键入。
置选区斜体 无 置选区斜体([逻辑 是否=真]) 无 仅合并选区斜体标志;无选区时影响后续键入。
置选区下划线 无 置选区下划线([逻辑 是否=真]) 无 仅合并选区下划线标志;无选区时影响后续键入。
置选区前景色 无 置选区前景色(文本 颜色) 无 仅合并选区文字颜色(如 #FF5555);无选区时影响后续键入。
置选区背景色 无 置选区背景色(文本 颜色) 无 仅合并选区背景高亮色;无选区时影响后续键入。
取纯文本 文本 取纯文本() 文本 返回当前纯文本内容(与「文本」属性一致)。
取富文本 文本 取富文本() 文本 返回简易 HTML(含选区样式对应的 span);无样式时为转义后的…
置富文本 无 置富文本(文本 内容) 无 按简易 HTML 解析并置入内容与样式。
置预览格式 无 置预览格式(整数 格式) 无 0=纯文本编辑;1=HTML 只读预览;2=Markdown 只读预览。
取预览格式 整数 取预览格式() 整数 返回当前预览格式(0/1/2)。
置边框 无 置边框([逻辑 显示边框=真], [整数 边框大小=1], [文本 边框颜色], [整数 描边样式]) 无 描边 0实…4双点划
移动 无 移动(小数 左边, 小数 顶边, [小数 宽度], [小数 高度]) 无 可选同时改宽高
置焦点 无 置焦点() 无
刷新 无 刷新() 无
显示 / 隐藏 无 显示() / 无 隐藏() 无 等同 可见 = 真/假
置字体 逻辑 置字体(字体类 字体) 逻辑 见 painter.md
超级文本框1.载入文件("a.txt", #编码_UTF8)
整数 n = 超级文本框1.查找("关键字", 0, 假, 假, 假)
超级文本框1.跳到行(10)

事件

在代码中写 函数 控件名.事件名(...) 处理。专用:

事件 参数
内容改变 / 文本改变 文本 当前文本
选区改变 / 光标移动 无参(内再取选区/行列)
文件已载入 文本 路径
虚拟模式改变 / 替换进度 / 滚动 / 行号栏点击 / 书签变化 / 已修改改变 整数 当前值

其余鼠标/焦点事件见下表。

事件 参数 说明
单击 整数 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=虚拟,0=否。
替换进度 整数 当前值 全部替换进行中周期性触发;当前值=已替换次数。可在处理函数中改标签,运行时会泵少量消息。
滚动 整数 当前值 垂直滚动位置变化;当前值=滚动像素(取整)。可用「取滚动位置 / 取首可视行」。
行号栏点击 整数 当前值 点击行号栏时触发;当前值=行号(从 1 起)。可在此切换书签等,控件不写死行为。
书签变化 整数 当前值 加入/清除书签后触发;当前值=剩余书签数量。
已修改改变 整数 当前值 脏标记变化;当前值 1=已修改,0=未修改。载入/保存成功会清零。
函数 超级文本框1.单击 (整数 X, 整数 Y) {
    // …
}

YSS 样式

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

布局与子选择器

定位: 大文本 / 日志 / 类编辑器控件(始终多行、自绘)。普通表单输入请用「文本框 / 多行文本框」。

伪状态与映射

伪状态: :hover :focus :disabled

与多行文本框对照

超级文本框 多行文本框
场景 日志、源码、大文件浏览与编辑 表单备注、短多行输入
大文件 mmap / 虚拟窗口;可保存;可尝试物化后编辑 适合中等以内全文缓冲
行号 支持「显示行号」;宽度按位数自适应;可用「字体类」+「置行号字体」 无
富文本 选区样式 + HTML/Markdown 只读预览 无(纯文本编辑)

属性说明(逐键)

外壳与 textbox 类似。显示行号、只读、最大长度等为设计器 / 代码属性,不是 YSS 键。

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

文字 · 底板 · 描边

属性 作用 取值 / 范围 说明与注意
color 正文文字色 颜色,如 #D4D4D4
background-color / background 编辑区底色 颜色
transparent-background 不铺底板 true/false
border-color / border-width / border-radius / show-border 描边 同文本框
font-size / font-family / font-bold / font-italic 字体 日志常用 "Consolas"
text-align 水平对齐 left / center / right
opacity 整体不透明度 0–100
padding / padding-* 内边距 简写或单侧像素
margin / margin-* 外边距 同 padding

折行 · 占位 · 滚动条

属性 作用 取值 / 范围 说明与注意
word-wrap 软折行 true/false 与 置自动折行 同一开关;大文件/虚拟模式按视觉行滚动(宽度估算)
placeholder / placeholder-text 空内容占位 如 "在此输入日志…"
placeholder-color 占位字色 颜色
scrollbar-width 滚动条宽 约 6–32
scrollbar-thumb-color 滑块色 颜色
scrollbar-track-color 轨道色 颜色
scrollbar-color 滑块+轨道简写 滑块色 轨道色,如 #787878 #282828

伪态

属性 作用 说明与注意
hover-color / hover-background-color 悬停字/底 亦可 :hover { … }
focus-border-color / focus-background-color / focus-glow-color 焦点边框/底/光晕 亦可 :focus { … }
disabled-color / disabled-background-color 禁用字/底 亦可 :disabled { … }

使用示例

深色日志框:

supertextbox#日志框 {
    color: #D4D4D4;
    background-color: #1E1E1E;
    border-color: #3C3C3C;
    border-width: 1;
    border-radius: 4;
    font-size: 13;
    word-wrap: true;
    placeholder: "在此输出日志…";
    placeholder-color: #666666;
}

焦点高亮:

supertextbox#日志框:focus {
    focus-border-color: #007ACC;
    focus-glow-color: #007ACC;
}

滚动条配色:

supertextbox#源码 {
    word-wrap: false;
    scrollbar-width: 10;
    scrollbar-color: #787878 #282828;
}

完整示例

supertextbox#日志框 {
    color: #D4D4D4;
    background-color: #1E1E1E;
    border-color: #3C3C3C;
    border-width: 1;
    border-radius: 4;
    show-border: true;
    font-size: 13;
    font-family: "Consolas";
    word-wrap: true;
    placeholder: "在此输出日志…";
    placeholder-color: #666666;
    scrollbar-width: 10;
    scrollbar-thumb-color: #787878;
    scrollbar-track-color: #282828;
}

supertextbox#日志框:focus {
    focus-border-color: #007ACC;
    focus-background-color: #1A1A1A;
    focus-glow-color: #007ACC;
}

supertextbox#日志框:disabled {
    disabled-color: #888888;
    disabled-background-color: #2A2A2A;
}