Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何使树视图重新考虑是否需要水平滚动条?_Delphi - Fatal编程技术网

Delphi 如何使树视图重新考虑是否需要水平滚动条?

Delphi 如何使树视图重新考虑是否需要水平滚动条?,delphi,Delphi,考虑以下非常简单的单元: 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 *.

考虑以下非常简单的单元:

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.
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
将此添加到VCL表单应用程序并运行。结果如下所示:

...
 TreeView1.Items.BeginUpdate;
 // change your nodes here
 TreeView1.Items.EndUpdate

我希望水平滚动条不显示。我怎样才能做到这一点

现在我意识到我可以删除分配很长字符串的代码行。但就我的问题而言,这是一个精简的程序。在中,我希望滚动条显示是否需要,而不显示是否不需要

我知道这种风格,但我不能用它。有时树视图包含的文本比可用空间宽。有时不是


我还想使用TreeView,不想使用虚拟树视图。并不是说我反对虚拟树视图,只是我的应用程序目前正在使用
TTreeView

非常简单,使用
TreeView.Items.BeginUpdate/EndUpdate
方法,滚动条将相应地计算出来

像这样:

...
 TreeView1.Items.BeginUpdate;
 // change your nodes here
 TreeView1.Items.EndUpdate

谢谢只是工作。是
EndUpdate
中的
WM_SETREDRAW(1,0)
完成了这项工作。不太清楚为什么会有这种效果。陈雷蒙: