rt
不知道是不是这样
procedure TForm1.Button1Click(Sender: TObject);
begin
if treeview1.items.count>0 then
begin
treeview1.Selected:=treeview1.Items.Item[treeview1.Items.count-1];
treeview1click(self);
end;
end;
procedure TForm1.TreeView1Click(Sender: TObject);
begin
if treeview1.Selected=nil then exit;
showmessage(treeview1.Selected.Text);
end;
treeview1.Selected:=treeview1.Items.Item[treeview1.Items.count-1];
楼上的应该可以
你看看了!
选中
SetNodeChecked(Treeview1.Items[treeview1.Items.count-1],true);
取消选中
SetNodeChecked(Treeview1.Items[treeview1.Items.count-1],false);
不好意思呀,忘了給你這個函數了~
//选中一个节点
procedure SetNodeChecked(Node :TTreeNode; Checked :Boolean);
const
TVIS_CHECKED = $2000;
var
TvItem :TTVItem;
begin
FillChar(TvItem, SizeOf(TvItem), 0);
with TvItem do begin
hItem := Node.ItemId;
Mask := TVIF_STATE;
StateMask := TVIS_STATEIMAGEMASK;
if Checked then
TvItem.State :=TVIS_CHECKED
else
TvItem.State :=TVIS_CHECKED shr 1;
TreeView_SetItem(Node.TreeView.Handle, TvItem);
end;
end;
改变子节点及父节点的状态节
RzCheckTree1.ChangeNodeCheckState( RzCheckTree1.Items[RzCheckTree1.Items.Count - 1],csChecked);
即可
我的权限管理用的是标准的TreeView,通过Win32 API函数加上CheckBox 框,权限管理的基本功能都能实现呀。