如何在SWT列表中禁用用于导航的左右箭头键



默认情况下,SWT List允许leftup箭头键向上移动列表项,rightdown箭头键向下移动列表项。但我想使用leftright箭头键进行另一个提议。如何删除默认情况下处于SWT List中的leftright箭头键侦听器?然后更换我自己的。这是我要使用的代码:

Listener listListener = new Listener() {
        public void handleEvent(Event e) {
            int RowIndex = listData.getSelectionIndex();
            if(RowIndex == 0){
                if (e.keyCode == SWT.ARROW_RIGHT) { //right arrow
                    //do something
                }else if (e.keyCode == SWT.ARROW_LEFT) { //left arrow
                    //do something
                }
             }
         }
    };
    list.addListener(SWT.KeyDown, listListener);

谢谢!

您可以通过将

doit 标志设置为如下所示false来禁止击键的默认行为

if( event.keyCode == SWT.ARROW_RIGHT ) {
  // do something    
  event.doit = false;
}

箭头键的默认行为很可能取决于平台。Windows 的行为与您描述的一样,但其他平台的行为可能有所不同。在任何情况下,将 doit 标志设置为 false 都有效,无论密钥是否具有默认行为。

我宁愿不覆盖平台行为,因为您的应用程序的行为将与平台的一般用法不一致。

相关内容

  • 没有找到相关文章

最新更新