.NET中的TreeView控件的checkbox勾选在录制下来的脚本中看到是位置敏感的,该问题可以使用以下函数解决:
// 选择指定TreeView的某个节点,把其前面的CheckBox勾选上
// Nodes:节点的全路径,例如:'|节点1|节点2'。
// NodeItem:TreeView控件。
Function SelectItem(Nodes,TreeView);
var NodesLevel,I,J,NodeName:OleVariant;
begin
// 获取节点路径的层次
NodesLevel := BuiltIn.GetListCount(Nodes,'|');
// 遍历每一个层次
For I:=1 to NodesLevel-1 do
begin
// 获取节点名称
NodeName := BuiltIn.GetListItem(Nodes,I, '|');
// 查找TreeView中当前层次的节点
For J:=0 To TreeView.Nodes.Count -1 do
begin
// 如果找到节点,则进入下一个节点层次
If(VarToStr(TreeView.Nodes.Item[J].Name) = NodeName )then
begin
TreeView := TreeView.Nodes.Item[J];
break;
end;
end;
end;
// 把找到的节点的Checked属性赋值为True,从而实现选中节点的目的
TreeView.Checked :=True;
end;
procedure TestSelectItem;
var w1 : OleVariant;
var w2 : OleVariant;
begin
w1 := Sys.Process('TreeView').Form1;
w1.Click(151, 14);
w2 := w1.treeView1;
SelectItem('|节点1',w2);
SelectItem('|节点1|节点2',w2);
SelectItem('|节点1|节点3',w2);
end;