13

来自标签的docwiki

当您需要识别或注释另一个组件(例如编辑框)或想要在表单中包含文本时,您可以在表单上放置标签。标准标签组件 TLabel 是非窗口控件,因此无法接收焦点;当您需要带有窗口句柄的标签时,请改用 TStaticText。

当您需要带有窗口句柄的标签时,请使用 TStaticText 代替”语句是什么意思?

4

4 回答 4

12

在工作中,当我们希望我们的 UI 自动化测试工具“读取”“标签”的文本时,我们会使用 TStaticText。大多数交互是通过 Windows API 消息传递完成的,因此 TStaticText 将响应 GetWindowText,而 TLabel 不会。这是关于我们如何使用 TStaticText 和 TLabel 的简单概述。

于 2014-08-16T23:32:53.903 回答
9

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.

于 2014-08-17T04:14:26.140 回答
2

从Embarcadero剪切和粘贴

TStaticText 组件的功能与 TLabel 类似,不同之处在于它源自 TWinControl,因此具有窗口句柄。当组件的加速键必须属于窗口控件(例如,在 ActiveX 属性页上)时,使用 TStaticText 而不是 TLabel。

于 2014-08-17T00:09:03.977 回答
1

我相信这两个标签控件具有几乎相同功能的原因是(前)历史性的。

在旧版本的 Windows(旧为 Windows 3.x)中,整个系统可以拥有的句柄数量存在实际限制。所以使用无句柄标签控制是节省这些宝贵系统资源的好方法。这就是 Borland 推出TLabel.

于 2020-11-09T10:39:34.520 回答