全键盘操作遍历树

今天spy一棵树对象(TVirtualStringTree),发现spy出来的都是一些基本的属性和方法,树本身的属性和方法都没有(原因可能是这个树控件被自定义封装或属于非标准的第三方控件),面对这样的一个对象要展开和遍历,只能通过键盘的上[Up],下[Down],左[Left],右[Right]等箭头去操作了。

思路:将树的层次和节点序号,组合成一个字符串,中间用“-”分割,例如:“6-2-1”,表示第1层的第6个节点展开后,进入第2层的第2个节点展开后,再进入第3层的第1个节点……

js代码:

//Description   : goto and expand the specified node
//Parameter     : [IN]objTree -- the object Tree
//Parameter     : [IN]strLevels -- the level of node,split by "-",such as 6-2-1
//Return        : null
//Author        : Alan
function gotoAndExpandNode(objTree,strLevels){
    var levels = arguments[1] == undefined || strLevels=="" ? 0 : strLevels;//deal with null and ""
    var arrLevels = new Array();
    if(levels.indexOf("-")!= -1){
        arrLevels = levels.split("-");
        for(i=0; i<arrLevels.length; i++){
            arrLevels[i] = parseInt(arrLevels[i]);//transfer to integer
        }
    }
    else{
        arrLevels[0] = parseInt(levels);
    }
    var counter = 0;
    for(i=0; i<arrLevels.length; i++){
        var intPos = objTree.VScroll.Pos;
        if(i == 0 & arrLevels[0] == 0){
            objTree.Keys("[Home]");//root node
        }
        else{
            objTree.Keys(getNumString("[Down]",arrLevels[i]));//go to specified node
            Log.Message("Go to the node: level: "+(i+1)+" ,position: "+arrLevels[i]);
            if(i==arrLevels.length-1) break;//last node exit loop
            objTree.Keys("[Right]");//expanding node
            objTree.Refresh();
            while(objTree.VScroll.Pos <= intPos + 1){
                Delay(1000);
                objTree.Refresh();
                if(counter>20) break;//timeout exit loop
                counter++;
            }
            
        }
    }
}
时间: 2024-08-01 20:09:03

全键盘操作遍历树的相关文章

IntelliJ IDEA全键盘操作

IntelliJ IDEA 如何做到全键盘操作呢? 1.自定义快捷键实现全屏操作 你可以设置自定义快捷键进入全屏操作,并实现各个窗口之间的切换.这样,你就可以告别小窗口的时代,体验全屏显示的效果了!(相信有过多年开发经验的你一定会觉得小窗口非常不便于阅读代码,特别是对于小屏幕的笔记本来说) 操作:在File/Settings(或Ctrl+Alt+S)打开设置界面,在搜索框中搜Keymap.然后将之前的keymap文件复制一份.因为原文件是不可以改动的,只有复制一份再对它进行设置自定义快捷键. 设

[转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作

从MyEclipse转战到IntelliJ IDEA的经历 注转载址:http://blog.csdn.net/luoweifu/article/details/13985835 我一个朋友写了一篇“从Eclipse到Android Studio”博文,于是心潮澎湃我也想一篇,分享自己用这个IDEA的一些技巧和感受. 来到公司的第一天,我的同事(也是我的师傅)就让我装IntelliJ IDEA.一开始我还不知道IntelliJ IDEA是什么,后来才知道它是一个Java的集成开发环境(IDE),

javascript可编辑表格控件 支持全键盘操作

项目中经常会用到表格编辑控件,网上也有不少,但是确实没有完全符合我要求的, 自己写一个吧! 1.该控件支持 数据显示列,文本编辑列,选择列,下拉列,索引列,删除列 六种列类型 2.支持全键盘操作,自定义键位 包括:列焦点切换,行焦点切换,新建行,数据保存(默认 上,下,左,右 键操作) 3.丰富的事件,绝大多数的客户端操作都能触发无刷新后台事件 4.支持统计运算,可自定义运算插件 5.兼容 Ie,chorme,firefox等绝大多数主流浏览器 下载地址:http://files.cnblogs

从MyEclipse到IntelliJ IDEA ——让你脱键盘,全键盘操作

从MyEclipse转战到IntelliJ IDEA的经历 我一个朋友写了一篇"从Eclipse到Android Studio"博文,于是心潮澎湃我也想一篇,分享自己用这个IDEA的一些技巧和感受. 来到公司的第一天,我的同事(也是我的师傅)就让我装IntelliJ IDEA.一开始我还不知道IntelliJ IDEA是什么,后来才知道它是一个java的集成开发环境(IDE),一个功能非常强大响应非常快速的java开发工具,号称最犀利的java IDE,重构神器!现在Goole新推出的

[转帖]Vim全键盘操作

https://www.cnblogs.com/pzqu/p/11416436.html Vim脱离鼠标第一步 平时不可缺少的会用到vim,但是避免不了鼠标,事实上,省略鼠标是完全可以的,没有想像中那么难,看我短短几行带大家一起省略鼠标. 对了,vim有三种模式,基本模式就是用来输入命令的,比如删除跳转等操作就是在基本模式下面:插入模式不用说:命令模式就是按Esc+:进入的模式,之间的切换很容易我就废话了.下面几乎都在基本模式操作. 基本操作 移动 h,l,j,k    左右下上 w,b    

Linux 用键盘操作窗口

以下是我从各处搜集来的关于用键盘操作窗口信息,操作可能不是最简或者最好的,当然也可能不是最全的,以后遇到新的操作,我会即使添加,如果你有我没有列出的操作,希望你能提出,我可以加上! 我实验的操作系统是ubuntu14.04,其他不清楚 1. 用键盘移动窗口 1)ALT+F7 快捷键, 然后用上.下.左.右键移动窗口 2)ALT+space(空格键),然后按m键,进入移动模式,然后用上.下.左.右键移动窗口 2.改变窗口大小 1)ALT+F8 快捷键, 然后用上.下.左.右键改变窗口大小 2)AL

python selenium 元素操作之键盘操作(五)

上节介绍了模拟鼠标对元素的操作,本节主要介绍键盘对元素的操作,实际过程中鼠标对元素的操作比键盘对元素的操作更经常使用,但是键盘对元素的操作也很重要,本节主要介绍一下键盘对元素的操作. selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入from selenium.webdriver.common.keys import Keys即可,然后就可以来模拟键盘操作. #导入Keys 模块,然后我们看看Keys 模块定义了那些按键 from selenium.webdrive

selenium键盘操作

经常使用到的键盘操作:send_keys(Keys.BACK_SPACE) 删除键(BackSpace)send_keys(Keys.SPACE) 空格键(Space)send_keys(Keys.TAB) 制表键(Tab)send_keys(Keys.ESCAPE) 回退键(Esc)send_keys(Keys.ENTER) 回车键(Enter)send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)send_keys(Keys.CONTROL,'c') 复制(Ctrl+C

模拟鼠标键盘操作,含硬件模拟技术[转载]

键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样可以把很多重复性的键盘操作交给程序来模拟,省了很多精力,按键精灵就是这样的一个软件.那么我们怎样才能用VB来写一个程序,达到与按键精灵类似的功能呢?那就让我们来先了解一下windows中响应键盘事件的机制.    当用户按下键盘上的一个键时,键盘内的芯片会检测到这个动作,并把这个信号传送到计算机.如