我使用的是TableCombo,當我按下下拉按鈕時,會顯示所有項目的列表。我想達到目前選定的行在此列表中未突出顯示(因爲我根據項目類型使用不同的背景顏色,並且突出顯示隱藏所選項目的背景顏色)。我曾嘗試使用SWT.NO_FOCUS
和SWT.HIDE_SELECTION
標誌創建表格,但未刪除高亮顯示。有任何想法嗎?SWT TableCombo禁用選定項目的高亮顯示
我試圖找出像在鞦韆熒光筆,但我還沒有成功
我使用的是TableCombo,當我按下下拉按鈕時,會顯示所有項目的列表。我想達到目前選定的行在此列表中未突出顯示(因爲我根據項目類型使用不同的背景顏色,並且突出顯示隱藏所選項目的背景顏色)。我曾嘗試使用SWT.NO_FOCUS
和SWT.HIDE_SELECTION
標誌創建表格,但未刪除高亮顯示。有任何想法嗎?SWT TableCombo禁用選定項目的高亮顯示
我試圖找出像在鞦韆熒光筆,但我還沒有成功
我剛剛發現this thread,這幾乎回答我的問題。對於SWT.FULL_SELECTION
高亮由OS自動處理 - 請參閱Win32上的Table.CDDS_ITEMPOSTPAINT(NMLVCUSTOMDRAW nmcd, int wParam, int lParam)
。
但是,這種行爲可以通過樣式常量來修改。對我來說,正確的解決方案是使用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
是SWT表我從我的JFace TableViewer
得到。不確定關於TableCombo
API。
太棒了!沒有等待......它似乎不適用於'Table' /'TableViewer's .. U_U – Campa