我正在使用TableCombo,当我按下下拉按钮时,会显示所有项目的列表。我想实现当前所选行在此列表中未突出显示(因为我根据项目类型使用不同的背景颜色,并且突出显示隐藏了所选项目的背景颜色)。我尝试使用SWT.NO_FOCUS
和SWT.HIDE_SELECTION
标志创建表格,但它没有删除突出显示。有任何想法吗?
我试图在挥杆中找出类似荧光笔的东西,但我没有成功
我正在使用TableCombo,当我按下下拉按钮时,会显示所有项目的列表。我想实现当前所选行在此列表中未突出显示(因为我根据项目类型使用不同的背景颜色,并且突出显示隐藏了所选项目的背景颜色)。我尝试使用SWT.NO_FOCUS
和SWT.HIDE_SELECTION
标志创建表格,但它没有删除突出显示。有任何想法吗?
我试图在挥杆中找出类似荧光笔的东西,但我没有成功
我刚刚找到了这个帖子,它几乎回答了我的问题。对于SWT.FULL_SELECTION
突出显示由操作系统自动处理 - 请参阅Table.CDDS_ITEMPOSTPAINT(NMLVCUSTOMDRAW nmcd, int wParam, int lParam)
Win32。
但是,可以通过样式常量修改此行为。对我来说正确的解决方案是一起使用SWT.FULL_SELECTION
(可以选择整行)和SWT.NO_FOCUS
(不使用深蓝色突出显示)和SWT.HIDE_SELECTION
(隐藏所选项目的默认灰色背景颜色)标志。
遗憾的是,HIDE_SELECTION
SWT 不支持该标志Tree
。
如this SO answer中所建议的,可以禁用传递给的事件SWT.EraseItem
:
table.addListener(SWT.EraseItem, new Listener() {
@Override
public void handleEvent(Event event) {
event.detail &= ~SWT.SELECTED;
}
});
table
是我从 JFace 获得的 SWT 表TableViewer
。不确定TableCombo
API。