2014-11-04 3 views
3

Я хочу иметь раскрывающееся окно только для чтения в моем приложении RCP Eclipse, но когда я устанавливаю флаг только для чтения, фон всегда остается серым. Это мой код:Цвет фона только для режима SWT Combo Только для чтения

Combo combo = new Combo(fCompositeLogin_1, SWT.READ_ONLY); 
    combo.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); 
    combo.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1)); 
    for(String i : items) { 
     combo.add(i); 
    } 
    combo.select(0); 

Я хотел бы иметь его на белом фоне, как я могу это сделать?

Спасибо

+3

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

ответ

1

Это возможно, обернув Combo внутри белого композита и настройки режима унаследуют композита принуждать.

Composite composite = new Composite(parent, SWT.NONE); 
composite.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); 
composite.setBackgroundMode(SWT.INHERIT_FORCE); 
comboCombo = new Combo(composite, SWT.READ_ONLY); 
+0

. Предлагаемое решение не работает в Windows. См. Здесь возможное обходное решение: http://stackoverflow.com/questions/41340605/set-color-for-swt-combo/41341967#41341967 –

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