C++ 根据标签高度动态设置窗体的滚动条属性-c++;建设者

C++ 根据标签高度动态设置窗体的滚动条属性-c++;建设者,c++,forms,scrollbar,c++builder,c++builder-6,C++,Forms,Scrollbar,C++builder,C++builder 6,我正在使用C++Builder6 我有一个包含TLabel的表单 我希望表单在需要时包含一个滚动条,因为有时标签文本太大而无法显示 现在发生的情况是,表单高度随着标签高度的增加而增加 我希望形状高度始终是该限制 如何设置表单的VertScrollBar属性以支持此操作 主要是如何设置位置和范围 将表单的containts.MaxHeight属性设置为所需的限制值,并将其AutoScroll属性设置为true。当表单内容超过其宽度/高度时,让VCL自动为您管理表单的滚动条 或者,我建议去掉TLab

我正在使用C++Builder6

我有一个包含
TLabel
的表单

我希望表单在需要时包含一个滚动条,因为有时标签文本太大而无法显示

现在发生的情况是,表单高度随着标签高度的增加而增加

我希望形状高度始终是该限制

如何设置表单的
VertScrollBar
属性以支持此操作


主要是如何设置位置和范围

将表单的
containts.MaxHeight
属性设置为所需的限制值,并将其
AutoScroll
属性设置为true。当表单内容超过其宽度/高度时,让VCL自动为您管理表单的滚动条

或者,我建议去掉
TLabel
,改用
TRichEdit
1。将其
WordWrap
设置为true,将其
ScrollBars
设置为
ssVertical
。当不需要滚动条时,它会自动隐藏滚动条


1:
TMemo
具有相同的
ScrollBars
属性,但在不需要滚动条时,它不会隐藏滚动条。

我认为设置自己的滚动条比设置
表单更幸运。可以轻松设置“位置”、“最小值”和“最大值”属性(以正确的顺序,这样就不会出现异常),但标签的呈现将不会同步。我不使用标签,而是使用OnPaint事件以Form1->Canvas->TextOutA(x,y,“string”);您可以使用滚动条位置来剪切所需的字符串部分。。。。单间距字体是一个很好的起点(如
OEM\u字符集、系统、fpFixed
)。或者你可以有全尺寸的虚拟屏幕(位图)和复制矩形。。。