也可以自己做: 两种做法: 第一种:画两个图,一个是打勾的checkbox1.bmp,一个是不打勾的checkbox2.bmp,把它们load进 timagelist中,假设index分别为1,2.procedure TForm1.treeview2getselectedindex(Sender: TObject; Node: TTreeNode); begin if Node.selectedIndex=1 then{节点前若已打勾,被选中时取消打勾} begin Node.SelectedIndex:=2; Node.Imageindex:=2; end else begin Node.selectedIndex:=1; Node.Imageindex:=1; end; 第二种方法,就是使用stateimage,效果不错 但不是checkbox,而是画一个打勾的图形(indext=3),当某个item被选中后,前面就出现这个打勾的图标, 当再次点击后,打勾的图标就消失. 在treeview的onclick事件中添加如下代码: if treeview2.selected.StateIndex<>3 then treeview2.selected.StateIndex:=3 else treeview2.selected.StateIndex:=-1;
TO: menggirl(看天上浮云,胜似闲庭信步) 你的方法我现在就是用这种,但不理想。如双击如何控制不展开呢?有没好一点的控件。
两种做法:
第一种:画两个图,一个是打勾的checkbox1.bmp,一个是不打勾的checkbox2.bmp,把它们load进
timagelist中,假设index分别为1,2.procedure TForm1.treeview2getselectedindex(Sender: TObject;
Node: TTreeNode);
begin
if Node.selectedIndex=1 then{节点前若已打勾,被选中时取消打勾}
begin
Node.SelectedIndex:=2;
Node.Imageindex:=2;
end
else
begin
Node.selectedIndex:=1;
Node.Imageindex:=1;
end;
第二种方法,就是使用stateimage,效果不错
但不是checkbox,而是画一个打勾的图形(indext=3),当某个item被选中后,前面就出现这个打勾的图标,
当再次点击后,打勾的图标就消失.
在treeview的onclick事件中添加如下代码:
if treeview2.selected.StateIndex<>3 then
treeview2.selected.StateIndex:=3
else
treeview2.selected.StateIndex:=-1;
你的方法我现在就是用这种,但不理想。如双击如何控制不展开呢?有没好一点的控件。
http://expert.csdn.net/Expert/topic/2961/2961287.xml?temp=.4622003
我以为是比较完美的,用时判断其StateIndex值;用TVS_CHECKBOXES 显示的框太粗