1

TableComboを使用しています。ドロップダウン ボタンを押すと、すべての項目のリストが表示されます。現在選択されている行がこのリストで強調表示されないようにしたいと思います(項目の種類に応じて異なる背景色を使用し、強調表示により選択した項目の背景色が非表示になるため)。SWT.NO_FOCUSおよびフラグを使用してテーブルを作成しようとしましたSWT.HIDE_SELECTIONが、ハイライトが削除されませんでした。何か案は?

スイングで蛍光ペンのようなものを見つけようとしましたが、成功しませんでした

4

2 に答える 2

1

このスレッドを見つけたところ、私の質問にほとんど答えています。強調表示はSWT.FULL_SELECTIONOS によって自動的に処理されます - Table.CDDS_ITEMPOSTPAINT(NMLVCUSTOMDRAW nmcd, int wParam, int lParam)Win32 を参照してください。

ただし、この動作はスタイル定数によって変更できます。私にとっての正しい解決策は、SWT.FULL_SELECTION(行全体を選択できます)およびSWT.NO_FOCUS(濃い青色のハイライトは使用されません)およびSWT.HIDE_SELECTION(選択したアイテムのデフォルトの灰色の背景色を非表示にする)フラグを一緒に使用していました。

残念ながら、このHIDE_SELECTIONフラグは SWT ではサポートされていませんTree

于 2012-06-19T11:46:07.777 に答える
0

この SO answerで示唆されているように、に渡されたイベントを無効にすることができSWT.EraseItemます:

table.addListener(SWT.EraseItem, new Listener() {   
    @Override
    public void handleEvent(Event event) {
        event.detail &= ~SWT.SELECTED;
    }
});

tableJFace から取得した SWT テーブルですTableViewerTableComboAPIについてはわかりません。

于 2015-11-18T12:08:25.767 に答える