2009-05-07 3 views
1

У меня есть ScrolledComposite, который немного похож на электронную таблицу. Он работает в основном без проблем, но у меня иногда есть большое поле, которое заполняет почти целую строку (самую правую часть).Большие поля на ScrolledComposite приводят к слишком большой прокрутке

Когда фокус находится в этом поле, и вызывается setShowFocusedControl (true), swt настаивает на отображении самой правой части поля, которая имеет тот же эффект, что и прокрутка до упора вправо на большой электронной таблице - это очень раздражает для пользователя, так как поле редко имеет очень много текста в нем.

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

Может кто-нибудь предложить лучшую стратегию? Могу ли я заставить swt показать самую левую часть фокусового поля?

ответ

1

Вы можете использовать setOrigin (Point) или setOrigin (int, int) в ScrolledComposite, чтобы установить начало прокрученного содержимого в верхнем левом углу.

+0

Спасибо за ответ - это на самом деле то, что я сделал, и это работает, но это все равно означает, что я должен делать это вручную каждый раз. Любой код, который может сфокусироваться на одной из этих строк, должен включать этот хак. Так что я все еще открыт для лучших решений - хотя я не уверен, что есть один. Я дам вам лучший ответ, если ничего лучше не появится до понедельника. – 2009-05-07 14:19:40

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