WaynesTextBox 类
单行可编辑文本字段。用户可以输入文本、用鼠标或 Shift+光标键选择文字、用 Ctrl+Left / Ctrl+Right 逐词跳转、双击选词,以及用标准 Windows 快捷键复制/剪切/粘贴/全选。控件在可配置背景之上绘制自己的插入符、选择高亮和内联文本装饰器(ERROR 的波浪线、WARNING 的下划线、INFO 的背景高亮)。
控件绘制三种视觉状态(NormalState、HoverState、FocusedState),由并行的 WaynesTextBoxState 子对象控制,每个子对象有独立的背景填充、边框、角、文本渲染、选择颜色、插入符颜色和装饰器颜色。
当前文本保存在 Value 中。代理对字符由光标/选择逻辑正确处理——插入符不会出现在代理对的高半部分和低半部分之间。
Private Sub Form_Load()
txtName.Value = ""
txtName.NormalState.TextRendering.Padding.Left = 6
txtName.NormalState.TextRendering.Padding.Right = 6
End Sub三种状态独立样式——常见模式是给焦点状态更粗的强调色边框和更亮的填充,使活动字段从同辈中突出:
Private Sub Form_Load()
With txtName.NormalState
.BackgroundFill.ColorPoints.SetSolidColor vbWhite
.Borders.SetSimpleBorder StrokeSize:=1, ColorRGB:=&HC0C0C0
.Corners.SetAll tbCurve, 4
.TextRendering.Padding.Left = 6
.TextRendering.Padding.Right = 6
End With
With txtName.FocusedState
.BackgroundFill.ColorPoints.SetSolidColor vbWhite
.Borders.SetSimpleBorder StrokeSize:=2, ColorRGB:=&HC07014 ' accent blue
.Corners.SetAll tbCurve, 4
.TextRendering.Padding.Left = 6
.TextRendering.Padding.Right = 6
End With
End Sub内联文本装饰器
用户输入时,控件自动标记 Value 中三个字面字符串的出现:
ERROR—— 红色波浪下划线(颜色来自 WaynesTextBoxState.DecorationERROR)。WARNING—— 深蓝色 2 像素直线下划线(来自 DecorationWARNING)。INFO—— 浅蓝色背景高亮(来自 DecorationINFO)。
颜色可按视觉状态配置。子字符串本身在当前版本中控件的绘制逻辑中硬编码。
属性
Anchors
调整大小时控件的哪些边附着到其容器。Anchors。继承。
Dock
控件在其容器内的停靠方式。DockMode 的成员。继承。
FocusedState
控件具有键盘焦点时使用的 WaynesTextBoxState。预设焦点特定默认值——橙色插入符、蓝色选择背景。
Height
控件的高度(像素)。PixelCount。继承。
HoverState
鼠标悬停在文本框上但未获得焦点时使用的 WaynesTextBoxState。
Left
控件左边缘距其容器的水平偏移量(像素)。PixelCount。继承。
Name
控件在其父窗体上的唯一设计时名称。String。继承。
NormalState
文本框空闲时——未焦点且未悬停——使用的 WaynesTextBoxState。
TabIndex
控件在窗体 TAB 键导航顺序中的位置。Long。继承。
TabStop
用户是否可以通过按 TAB 到达控件。Boolean。继承。默认:True。
Top
控件上边缘距其容器的垂直偏移量(像素)。PixelCount。继承。
Value
字段中的当前文本。String。默认:"Textbox"。
语法:object.Value [ = string ]
Visible
控件当前是否显示。Boolean。继承。默认:True。
Width
控件的宽度(像素)。PixelCount。继承。