各路过路高手,还有其他方法吗?
请看如下的贴子,请建议。最好有代码。
******************************************
主 题:简单的TreeView问题,给20分
作 者:tongki_8
所属论坛:Delphi
问题点数:20
回复次数:8
发表时间:2002-1-18 14:20:03
1、如何找到已知NODE.text所在的节点?
2、如何把找到的节点置成被选择状态?(鼠标)
回复贴子:
回复人: tongki_8() (2002-1-18 14:29:53) 得0分
()()
回复人: tongki_8() (2002-1-18 14:33:52) 得0分
怎么办?没有人理我。
回复人: zswang(伴水)(需要充充电) (2002-1-18 14:39:26) 得13分
procedure TForm1.Button1Click(Sender: TObject);
var
I, J: Integer;
begin
J := 0;
if Assigned(TreeView1.Selected) then
for I := 0 to TreeView1.Items.Count - 1 do
if TreeView1.Items[I] = TreeView1.Selected then begin
J := I + 1;
Break;
end;
for I := J to TreeView1.Items.Count - 1 do
if TreeView1.Items[I].Text = Edit1.Text then begin
TreeView1.Selected := TreeView1.Items[I];
TreeView1.SetFocus;
Exit;
end;
ShowMessage('No');
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
TreeView1.Selected := nil;
end;
回复人: xxmmmx(踢踏) (2002-1-18 14:51:39) 得1分
首先Treeview1要处于激活状态
node.Selected:=true;
回复人: tiger2023() (2002-1-18 15:03:51) 得6分
你可以看TTreeNode.data 和 TTreeNode.selected的帮助
由于每个Node的TEXT是可变的(当然你可以不允许更改)且可重复,所以不能做唯一标识,你不妨在生成NODE同时添加一个唯一标识(用function AddObject(Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode;然后每次用TTREENODE。DATA来验证;
至于后者用TTreeNode.Selected := true即可
********************************************************
问题点数:20、回复次数:5Top
1 楼tongki_8(矛盾与迟钝)回复于 2002-01-18 17:46:34 得分 0
????Top
2 楼ihihonline(潇潇->戒烟)回复于 2002-01-18 17:53:17 得分 5
也遇到过这种问题
但
begin
TreeView1.Selected := TreeView1.Items[I];
TreeView1.SetFocus;
Exit;
好像不行Top
3 楼tongki_8(矛盾与迟钝)回复于 2002-01-18 18:01:32 得分 0
对呀,那什么办?Top
4 楼shuangsa(双萨)回复于 2002-01-18 18:05:34 得分 15
TreeView1.Items[I].selected:=true;
TreeView1.SetFocus;
可以选种所要节点,但假设节点很多,有可能要拉滚动条才能看见当前接点Top
5 楼tongki_8(矛盾与迟钝)回复于 2002-01-18 18:07:15 得分 0
好的,我试一试。Top




