考虑以下非常简单的单元:
Unit1.pas
unit Unit1;
interface
uses
Windows, Classes, Controls, Forms, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const
SLongString = 'blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah';
procedure TForm1.FormCreate(Sender: TObject);
var
Node: TTreeNode;
begin
TreeView1.Width := 200;
Node := TreeView1.Items.Add(nil, SLongString);
Node.Text := 'blah';
end;
end.
Run Code Online (Sandbox Code Playgroud)
Unit1.dfm
object Form1: TForm1
ClientHeight = 137
ClientWidth = 216
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object TreeView1: TTreeView
Left = 8
Top = 8
Width = 198
Height = 121
end
end
Run Code Online (Sandbox Code Playgroud)
将其添加到VCL Forms应用程序并运行.结果如下:

我想不要显示水平滚动条.我怎样才能做到这一点?
现在我意识到我可以删除分配很长字符串的代码行.但就我的问题而言,这是一个减少的计划.在真实的应用程序中,节点的文本正在改变,我希望滚动条显示它们是否需要,并且不显示它们是否不需要.
我知道TVS_NOHSCROLL风格,但我不能使用它.有时树视图包含的文本比可用空间宽.有时不是.
我也想使用TTreeView并且不想使用虚拟树视图.并不是说我有任何针对虚拟树视图的东西,只是我的应用程序当前正在使用TTreeView.
who*_*ddy 17
非常简单,使用TreeView1.Items.BeginUpdate/EndUpdate方法和滚动条将相应地计算.
像这样:
...
TreeView1.Items.BeginUpdate;
// change your nodes here
TreeView1.Items.EndUpdate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1156 次 |
| 最近记录: |