textbox
定义
文本框是图形用户界面(GUI)中的一种控件,也叫文本字段或文本输入框,作用在于让使用者把文字信息送入程序,供程序使用[1]。它属于控件(也称为部件)的一类,控件是用户能够直接改变的信息呈现单元,窗口、文本框都是常见形态。
典型的文本框是一个大小可变的矩形,可能带有边框,以便与界面其余部分区分开;框内可以没有滚动条,也可以有 1 个或 2 个滚动条[1]。文本框一般会显示文本光标,形态多为闪烁的竖线,用来指示正在编辑的文字位置;鼠标指针移到文本框上方时,往往也会变换外观[1]。界面设计规范通常建议:只需输入一行时采用单行文本框,可能超过一行时才使用多行文本框;不可编辑的文本框则只用于显示文字[1]。
原理
文本框的工作过程围绕键盘输入、光标定位与文本状态展开。用户按键后,字符会出现在插入符所在的位置;某些简化实现甚至不显示插入符,此时新输入的字符追加在当前文本末尾[1]。插入模式与改写模式可由 Insert 键切换:前者把新字符插到光标右侧字符之前,后者则直接覆盖该字符[1]。
选择与编辑依赖鼠标和键盘的配合。用鼠标在目标位置单击即可移动光标,按住主键从文字一端拖到另一端则形成选区;方向键每次移动一个字符或一行,Home 与 End 键跳到行首与行尾,Page Up 与 Page Down 按键入方式前后翻页[1]。按住 Shift 键再改变光标位置,可将起点到当前位置之间的文字选为选区;Delete 与 Backspace 分别删除光标右、左侧的一个字符,配合 Ctrl 或 Command 键则一次删除一个词[1]。
文本框还普遍支持剪贴板操作与撤销、重做,常见快捷键为 Ctrl+Z 与 Ctrl+Y(Windows)或 Command-Z 与 Command-Shift-Z(macOS)[1]。这些按键绑定来自 Windows 与 macOS 的文本控件,X Window System 等环境下的设定与之相近,大多沿用同一套方案[1]。
在开发框架层面,文本框以类的形式提供,开发者通过属性、方法和事件来配置它。以 .NET 的 Windows 窗体为例,从工具箱拖入一个 TextBox 组件,实际上就是实例化相应命名空间中的 .NET 类并设定其位置、形状与各项属性[3]。这类控件提供外观与行为相关的属性(如文本内容、边框样式、背景色、字符长度限制),同时对外抛出随输入变化、获得焦点、失去焦点等事件供程序响应[3]。
发展历程
文本框的出现与图形用户界面操作系统的普及同步。1985 年,微软的 Windows 1.0 在对话框中给出了选项按钮、复选框、文本框和命令按钮等界面元素[4]。
此后各平台对文本框能力不断扩展。Java Swing 以 JTextField 与 JTextArea 分别处理单行与多行输入,并引入 DocumentListener 监听文本变更;HTML5 为输入域增加了 placeholder 占位提示;Windows 窗体则集成拼写检查与上下文菜单[3]。在 Canvas 等较新的渲染技术中,开发者可以借助动态布局引擎自建文本框模型,依据字形宽度、基线偏移量等参数完成排版[4]。
应用
文本框最直接的用途是收集用户填写的短文本,因此大量出现在各类表单中,例如姓名、电话号码、电子邮件地址和口令等信息的录入[5]。界面设计指南建议为单行文本框配上标签或占位文字说明用途,其宽度应略大于预计的最长内容,并可为输入设定字符数上限。
当需要输入或编辑较长字符串时,通常改用多行文本框,通过接受回车换行、自动换行和滚动条设置来适应大段文字。除了文本输入,文本框也是其他控件的组成基础:组合框就是单行文本框与下拉列表或列表框的结合,用户既可直接键入值,也可从既有选项中挑选[6]。
文本框还常被用作实现界面交互的辅助手段。有技术方案在选项卡容器内放置单行文本框,点击标签时使焦点落到该文本框上,浏览器便会滚动容器、令其进入可视区域,由此实现选项卡切换效果[7]。在文档与演示设计软件中,文本框则作为可移动、可调整尺寸的容器存在,用来承载独立于正文排布的文字[4]。
局限
文本框只处理字符,不负责语义。以 Windows 的 TextBox 为例,它展示的是简单、统一的纯文本格式,无法像 RichEditBox 那样编辑带格式的内容;若文字始终不可修改,更合适的选择是静态显示用的文本块控件[8]。纯文本框所需的系统资源少于富文本框,因此在只需编辑纯文本时更为合用,但代价是放弃了格式与嵌入对象的支持[4]。
对输入的约束也存在边界。字符数上限只作用于键入的内容,并不限制粘贴进来的文本长度,需要另行处理粘贴事件才能加以控制[9]。设置为只读后,控件外观与可编辑时几乎相同,使用者可能因此产生误解,这一状态更适合临时使用[8]。多行文本框会随输入持续向下增高,若不以高度或最大高度加以约束,可能溢出可见区域[9]。
口令等敏感内容不宜直接用普通文本框收集,各平台因此提供专门的密码框,将其输入显示为圆点等符号[8]。在移动端的 MIDP 实现中,文本框的容量由系统设定上限,应用申请的尺寸可能大于实现允许的最大值,因此程序需要先做比较[5]。
参见
参考资料
- Text box [引用日期2026-10-29]
- GUI widget [引用日期2026-10-29]
- textbox [引用日期2026-10-29]
- 文本框_百度百科 [引用日期2026-10-29]
- Java手机软件图形界面API之screen相关API [引用日期2026-10-29]
- Widget (GUI) [引用日期2026-10-29]
- [0046] 在步骤S102中,根据所述触发指令,获取所述选项卡控件对应的选项卡容器内预设的文本框 [引用日期2026-10-29]
- 文字方塊 - 跳到主要內容 跳過到 Ask Learn 聊天體驗 [引用日期2026-10-29]
- text-box [引用日期2026-10-29]