如何使得cxDBTreeList的节点内容可以多行显示?
如何使得cxDBTreeList的节点内容可以多行显示?
如下图
[解决办法]
你要的功能不是多行显示而是多列显示吧,cxDBTreeList主要有以下三个关键属性
KeyFields: 子节点ID
DisplayFields:节点内容这里就是显示内容,记得可以在界面上直接新增的,应该是双击cxDBTreeList吧
ParentFields:父节点ID
[解决办法]
cxDBTreeList中,要使得某列的文本能折行显示:
第一、将该列的Properties设置为Memo;
第二、在Properties里的WordWrap设置为True。
[解决办法]
......var Form1: TForm1;//本代码在Delphi7 + DevExpress.V28 下编译、运行通过。implementationuses Midaslib;//免发布Midas.dll(TClientDataSet使用需要)//ClientDataSet1中有ID(自增类型)、ptID(整型)、name(字符型)三个字段;//先想办法在ClientDataSet1中增加三笔记录://1,0, 中国软件研发联盟QQ群//2, 1, 广州佬抛砖引玉来了//3,2, 欢迎大家来群里交流交流//当然,你也可以使用你自己现成的其他数据库来校验下列代码。 //若有谬误处,请指正,谢。{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);var i:integer;begin ClientDataSet1.LoadFromFile('.\tmp.cds');//加载数据库 DataSource1.DataSet:=ClientDataSet1;//连结数据源 cxDBTreeList1.DataController.DataSource:=DataSource1;//连接TreeList cxDBTreeList1.Align:=alClient;//客满 cxDBTreeList1.OptionsView.Headers:=False;//隐藏表头 cxDBTreeList1.DataController.CreateAllItems;//建立数据列 cxDBTreeList1.DataController.KeyField:='id';//关联键字段 cxDBTreeList1.DataController.ParentField:='ptID';//宿主字段 cxDBTreeList1.Columns[2].PropertiesClass:=TcxMemoProperties;//设置为memo属性 cxDBTreeList1.Columns[2].Width:=120;//列宽120 cxDBTreeList1.OptionsView.ColumnAutoWidth:=False;//取消自动列宽 cxDBTreeList1.OptionsView.CellAutoHeight:=True;//行高自动适应 (cxDBTreeList1.Columns[2].Properties as TcxMemoProperties).WordWrap:=True;//折行显示 for i:=1 downto 0 do cxDBTreeList1.Columns[i].Visible:=false;//隐藏0、1列 cxDBTreeList1.FullExpand;//展开全部节点// cxDBTreeList1.FullCollapse;//合拢全部节点end;procedure TForm1.cxCheckBox1Click(Sender: TObject);//折行显示控制begin cxDBTreeList1.OptionsView.ColumnAutoWidth:=not cxCheckBox1.Checked; (cxDBTreeList1.Columns[2].Properties as TcxMemoProperties).WordWrap:=cxCheckBox1.Checked;end;procedure TForm1.cxCheckBox2Click(Sender: TObject);//表头显示控制begin cxDBTreeList1.OptionsView.Headers:=cxCheckBox2.Checked;end;......