来自标签的docwiki:
当您需要识别或注释另一个组件(例如编辑框)或想要在表单中包含文本时,您可以在表单上放置标签。标准标签组件 TLabel 是非窗口控件,因此无法接收焦点;当您需要带有窗口句柄的标签时,请改用 TStaticText。
“当您需要带有窗口句柄的标签时,请使用 TStaticText 代替”语句是什么意思?
来自标签的docwiki:
当您需要识别或注释另一个组件(例如编辑框)或想要在表单中包含文本时,您可以在表单上放置标签。标准标签组件 TLabel 是非窗口控件,因此无法接收焦点;当您需要带有窗口句柄的标签时,请改用 TStaticText。
“当您需要带有窗口句柄的标签时,请使用 TStaticText 代替”语句是什么意思?
在工作中,当我们希望我们的 UI 自动化测试工具“读取”“标签”的文本时,我们会使用 TStaticText。大多数交互是通过 Windows API 消息传递完成的,因此 TStaticText 将响应 GetWindowText,而 TLabel 不会。这是关于我们如何使用 TStaticText 和 TLabel 的简单概述。
Also, if you're creating forms that need to work with screen readers for visually impaired users, TLabels can't be seen by the software, but TStaticText labels can.
从Embarcadero剪切和粘贴
TStaticText 组件的功能与 TLabel 类似,不同之处在于它源自 TWinControl,因此具有窗口句柄。当组件的加速键必须属于窗口控件(例如,在 ActiveX 属性页上)时,使用 TStaticText 而不是 TLabel。
我相信这两个标签控件具有几乎相同功能的原因是(前)历史性的。
在旧版本的 Windows(旧为 Windows 3.x)中,整个系统可以拥有的句柄数量存在实际限制。所以使用无句柄标签控制是节省这些宝贵系统资源的好方法。这就是 Borland 推出TLabel
.