2015-11-24 3 views
0

Я проверял событие, которое указывает, открыт ли список отображения Combo, но ничего не видел.Уведомление о событии, если отображается список отображения SWT Combo

Я думал о крючке для мыши вниз, но я быстро понял, что пользователь нажимает и отпускает мышь, чтобы отобразить список. Кроме того, можно использовать клавиатуру.

Я видел this article, который сказал использовать метод getListVisible(), однако это либо какой-то таймер. Событие с мышкой не совсем точно для реализации проверки, и таймер кажется серьезным излишеством для простой задачи.

cboServers = new Combo(this.cmptLogHtsControl, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL); 
cboServers.addMouseListener(new MouseAdapter() 
{ 
    @Override 
    public void mouseDown(MouseEvent arg0) 
    { 
    } 
    @Override 
    public void mouseUp(MouseEvent arg0) 
    { 
    } 
}); 
gridData = new GridData(GridData.FILL, GridData.FILL, true, true); 
gridData.widthHint = 300; 
cboServers.setLayoutData(gridData); 
this.cboServers.addSelectionListener(new SelectionAdapter() 
{ 
    @Override 
    public void widgetSelected(SelectionEvent arg0) 
    { 
    } 
}); 

Я что-то не хватает? Мысли?

ответ

1

Поскольку всплывающее окно выполняется встроенным элементом управления, вероятно, нет никакого способа увидеть это.

Глядя на реализацию Combo на Mac OS X getListVisible() выполняется с использованием событий, специфичных для OS X и не отображаемых в SWT API.

+0

Это означает, что ответ, поставленный в вопросе 14579847, упомянутый в моем вопросе, не был реальным ответом, поскольку он нарушает правила WORA. Это также означает, что мне нужно написать собственное выпадающее меню. .Net лучше, так как эта структура предоставляет эти ключевые события (показывать и скрывать список отображения). –

+1

Элемент 'CCombo' написан полностью с использованием других элементов управления SWT, вы можете сделать копию этого с необходимыми событиями. 'getListVisible()' работает на всех платформах, как это реализовано, очень сильно отличается на каждой платформе. –

Смежные вопросы