问题: 简单的问题:在TreeView控件里,怎样做到节点的图标能前后显示? ( 积分: 100 )
分类: 控件 - 使用
来自: 萨奇马, 时间: 2005-01-17 17:51:00, ID: 2967963
1.在TreeView控件里,怎样做到节点的图标能在文字的前后显示?
2.在TreeView控件里,怎样改变节点与节点之间的行距?
3.在TreeView控件里,能不能自定义父节点与子节点的缩进距离?
来自: yostgxf, 时间: 2005-01-17 18:47:30, ID: 2968021
1.不知道
2,3 肯定可以,但实在记不起来了用什么函数
来自: HellArchon, 时间: 2005-01-17 19:35:27, ID: 2968057
1.TreeView的默认格式好像只支持一个图标,前后都有估计要自己重写TreeView控件
2.可以用ImageList控件控制,关联一个ImageList控件,ImageList的Hight能控制TreeView节点与节点之间的行距
3.TreeView的Indent属性好像是缩进距离
来自: 庞淑汝, 时间: 2005-01-17 22:04:59, ID: 2968170
TreeView 是支持两个图标的,最起码是设置节点的StateImages属性>0 就可以出现两个图标,但是只能在前面出现...
TreeView的Indent属性只能是整个树移,不是指父节点与子节点的缩进,不知版主是不是要这个效果
to yostgxf 你是来骗分的吗?答了等于没答
我也想知答案啊....高手快来结贴啦....领分
来自: yostgxf, 时间: 2005-01-18 1:20:27, ID: 2968245
to 庞淑汝: 你太不客气了,我不是很在乎这点分。我确实以前这样做过,翻了很多我以前的资料没有找到。我只是想告诉楼主,2,3是有答案的。比如indent什么的(这样设置只能移动整个TreeView)好像Set_Item什么的,实在记不起来了
来自: yostgxf, 时间: 2005-01-18 2:46:36, ID: 2968254
呵呵,气死我了。
总算找出来了。
2.在TreeView控件里,怎样改变节点与节点之间的行距?
TreeView_SetItemHeight(TreeView1.Handle, 20);
3.在TreeView控件里,能不能自定义父节点与子节点的缩进距离?
TreeView_SetIndent(TreeView1.Handle, 30);
在CommCtrl单元,还有其他相关的函数,你自己去看看吧
来自: 萨奇马, 时间: 2005-01-18 10:03:54, ID: 2968443
yostgxf 大哥:
能不能再详细点,是在程序里写这些语句,还是改CommCtrl单元里的原代码,我都不能成功,还有,在CommCtrl单元里,找不到SetItemHeight这个啊..
还有,我要求的缩进,是任一节点缩进(即是指定的节点),而其它的节点不缩,能不能这样?
来自: yostgxf, 时间: 2005-01-18 10:08:43, ID: 2968457
很简单
uses CommCtrl;
TreeView_SetItemHeight(TreeView1.Handle, 20);
TreeView1.Handle是你的TreeView的句柄,20是你要设置的值
来自: 庞淑汝, 时间: 2005-01-18 12:10:39, ID: 2968626
to yostgxf
Sorry,原来你是高手,小女子不知啊...我是一个新手啊
真是太神奇了,好劲啊...唔知,第一个问题能不能解决????我也想做类似PoPo这样的好友列表树啊...如果你解决了,叫楼主加分啦...
来自: HellArchon, 时间: 2005-01-18 14:13:16, ID: 2968769
搞那么复杂
TreeView_SetIndent(TreeView1.Handle, 30)和
TrrrView1.Indent := 30
有区别么?
我做了测试,源码如下
=======================================
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Spin, ComCtrls, CommCtrl;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit;
procedure FormCreate(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure SpinEdit3Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
SpinEdit1.Value := TreeView_GetItemHeight(TreeView1.Handle);
SpinEdit2.Value := TreeView_GetIndent(TreeView1.Handle);
SpinEdit3.Value := TreeView1.Indent;
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
TreeView_SetItemHeight(TreeView1.Handle, SpinEdit1.Value);
end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
TreeView_SetIndent(TreeView1.Handle, SpinEdit2.Value);
end;
procedure TForm1.SpinEdit3Change(Sender: TObject);
begin
TreeView1.Indent := SpinEdit3.Value;
end;
end.
=======================================
同样, TreeView_SetItemHeight(TreeView1.Handle, 20)和关联ImageList的效果是一样的,不过 TreeView_SetItemHeight(TreeView1.Handle, 20)是方便些了。
来自: 萨奇马, 时间: 2005-01-18 15:21:29, ID: 2968871
哦,我早上已用yostgxf的方法做了
其实我最只要是想问:在TreeView控件里,怎样做到节点的图标能在文字的前后显示?
这个贴明天就结,希望楼上两位高手再想想好的吧...再加分
来自: 萨奇马, 时间: 2005-01-19 19:35:48, ID: 2970512
多人接受答案了。
得分大富翁: HellArchon-45,yostgxf-45,庞淑汝-10,