2009-05-07 2 views
1

J'ai un ScrolledComposite qui est un peu comme une feuille de calcul. Cela fonctionne la plupart du temps sans problèmes, mais j'ai parfois un grand champ qui remplit presque une rangée entière (la partie la plus à droite).Les grands champs sur ScrolledComposite entraînent trop de défilement

Lorsque focus est sur ce champ, et que setShowFocusedControl (true) a été appelé, swt insiste pour afficher la partie la plus à droite du champ, ce qui a le même effet que de défiler vers la droite sur un grand tableur - il est très ennuyeux pour l'utilisateur, car le champ contient rarement beaucoup de texte. Par conséquent, la stratégie choisie dans le code consiste à activer et désactiver tout le temps ShowShowFocusedControl, ce qui est très sensible aux bogues.

Quelqu'un peut-il suggérer une meilleure stratégie? Puis-je faire apparaître SWT la partie la plus à gauche du champ ciblé?

Répondre

1

Vous pouvez utiliser setOrigin (Point) ou setOrigin (int, int) sur le composant ScrolledComposite pour définir l'origine du contenu déroulant en haut à gauche.

+0

Merci pour la réponse - c'est effectivement ce que j'ai fait, et cela semble fonctionner - mais cela signifie quand même que je dois le faire manuellement à chaque fois. Tout code qui peut se concentrer sur l'une de ces lignes doit inclure ce hack. Je suis donc toujours ouvert à de meilleures solutions - même si je ne suis pas convaincu qu'il y en ait une. Je vais vous donner la meilleure réponse si rien de mieux ne vient avant lundi. –

Questions connexes