B
MyForm
=
new
B()
B.ShowDialog(this)
A中写个属性:
public
string
AddNodes
{
set{
A.TreeView1.nodes.add(value)
}
}
B的添加按钮事件中:
A
TheForm
=
(A)this.Owner
if
(TheForm
!=
null)
{
TheForm.AddNodes
=
你输入的名称
}
如果你想对这个节点再进行 *** 作,请指定节名的NAME属性
原因很明显,当有新增的节点,Items已经发生了改变,所以你的items[x]是一个变量而非常量。一个最笨的办法就是,在没有添加任何子节点前,把节点用StaticNodes:array of TTreeNode数组保存起来,然后再通过StaticNodes[x].AddChild进行添加。
如果想动态一点就得加一个搜索功能(TreeView控件并没有附带节点搜索功能),你添加子节点前得手动查询到父节点。
以下是一个比较简单的方法:
function FindNodeByText(aTree:TTreeViewtheTexts:String):TTreeNode
var
i:Integer
begin
Result:=NIL
for i:=0 to aTree.Items.Count-1 do
if aTree.Items[i].Text=theTexts then
begin
Result:=aTree.Items[i]
Break
end
end
查询的方法有很多更有效率的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)