1
我正在尋找一個完全禁用選擇高亮的解決方案。我有以下的方法:沒有選擇的SWT表
table.addListener(SWT.Selection, new Listener()
{
@Override
public void handleEvent(Event event)
{
event.detail = SWT.NONE;
event.type = SWT.None;
event.doit = false;
try
{
table.setRedraw(false);
table.deselectAll();
}
finally
{
table.setRedraw(true);
}
}
});
但它以某種方式只解決了我的要求。背景高亮的確是走了,但周圍的選擇矩形仍出現:
如果你在矩形看起來更準確地說,你會看到,它看起來醜陋特別是圍繞複選框。這實際上是我想要禁用選擇的主要原因。
感謝。我創建了一個隱形按鈕'invisibleButton = new Button(table,SWT.NONE); invisibleButton.setVisible(false);'並將焦點重定向到它,如果需要'invisibleButton.setFocus(); invisibleButton.forceFocus();(它比你的例子稍微複雜一些,因爲其中一列是可編輯的)。但爲什麼樣式選項SWT.NO_FOCUS沒有做它應該做的事? –
@DanyloEsterman很多風格位都只是提示。操作系統可能會尊重他們或現在可能。 – Baz
我還有一個小問題。我真的需要重置'event'對象的所有字段嗎? –