Désactiver ET griser un composite SWT
J'ai un Composite
que je veux être en mesure d'activer/de désactiver par programmation. Le Control.setEnabled(boolean enabled)
méthode fonctionne très bien, mais il ne donne pas toute l'information visuelle que le widget(s) sont désactivés.
Ce que je voudrais faire c'est d'avoir l'état désactivé dire les widgets sont grisées. Pour l'heure, ils suffit d'entrer un étrange état où l'utilisateur est dans l'impossibilité de cliquer ou d'effectuer une action sur eux.
source d'informationauteur Fredrik | 2010-06-02
Vous devez vous connecter pour publier un commentaire.
Un Composite est un contrôle conteneur contenir d'autres contrôles à l'aide d'une mise en page, vous ne pouvez pas voir un composite vraiment, vous ne pouvez voir que les contrôles qu'il détient. Pour désactiver et voir ensuite désactivé, vous devrez appeler
setEnabled(false)
sur tous les enfants, en supposant qu'ils ne sont pas des récipients trop. En gros, avoir pour activer/désactiver la feuille de widgets et vous verrez une indication visuelle.La raison pour laquelle vous ne pouvez pas faire n'importe quoi avec les widgets lors de la désactivation, le Composite est parce que le Composite est de manger de tous les événements. Bien que les widgets enfants ne reçoivent pas les événements transmis, ils ne savent rien sur l'état de leur parent, de sorte qu'ils ne sont pas grisés.
Le problème était, en effet, que j'étais la désactivation du composite et de ne pas les contrôles à l'intérieur. Ce que j'ai fait quelque chose comme:
En d'autres termes, vous devez écrire du code comme celui-ci, compte tenu d'une
Composite c
: