如何禁用左右箭头键在 SWT 列表中导航?
How to disable left and right arrow keys for navigation in SWT List?
SWT List
允许 left
和 up
箭头键向上移动列表项,right
和 down
箭头键向下移动默认情况下的列表项。但我想使用 left
和 right
箭头键进行另一个提议。如何删除默认情况下 SWT List
中的 left
和 right
箭头键侦听器?然后换成我自己的。这是我要使用的代码:
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
在任何情况下都有效,无论该键是否具有默认行为。
我不想覆盖平台行为,因为您的应用程序的行为将与平台的一般用法不一致。
SWT List
允许 left
和 up
箭头键向上移动列表项,right
和 down
箭头键向下移动默认情况下的列表项。但我想使用 left
和 right
箭头键进行另一个提议。如何删除默认情况下 SWT List
中的 left
和 right
箭头键侦听器?然后换成我自己的。这是我要使用的代码:
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
在任何情况下都有效,无论该键是否具有默认行为。
我不想覆盖平台行为,因为您的应用程序的行为将与平台的一般用法不一致。