2014-07-24 12 views
0

我正在使用一个SWT表,其样式为SWT.CHECKSWT.FULL_SELECTION。当用户双击表格行时,我添加了一个MouseListener来填充输出组。但是,双击也会切换行的复选框。虽然我认为这是目标平台(Windows)的预期行为,但我想阻止该复选框切换。抑制SWT.CHECK中的默认双击事件表

是否可以而不是使复选框切换双击?

+1

那么,这是哪个平台?在Mac上双击不会切换复选框。 –

+0

无论在Windows上...... – Baz

+0

我在Windows 7上观察到了这种行为。 – user1438038

回答

0

我想通了,我使用的表实现添加了一个SelectionListener来切换复选框。

当我删除它,一切都按预期:

Listener[] listeners = table.getListeners(SWT.Selection); 

    if (listeners.length > 0) { 
    TypedListener typedListener = (TypedListener)listeners[0]; 

    SelectionListener selectionListener = (SelectionListener)typedListener.getEventListener(); 

    table.removeSelectionListener(selectionListener); 
    } 

是不是一个干净的解决方案,但因为我知道,对象只有在那个时候一个SelectionListener中,似乎合法的删除该办法。