le traitement des changements d'orientation efficace pour tous les contrôles avec petit changement de code

StackOverflow https://stackoverflow.com/questions/2240941

Question

J'ai un projet Windows Mobile construit en C #.

J'ai beaucoup de formes prêtes à l'emploi ayant différents contrôles sur elle, de listviews à Editfields. Lorsque l'utilisateur change d'orientation certains éléments ne sont pas rafraîchissant correctement. Par exemple les colonnes de Listview sont les mêmes et ne peuvent pas accueillir le nouveau changement de largeur de l'écran (ou barres de défilement apparaissent la moitié de l'écran est rempli).

Comment gérez-vous ces changements?
Ai-je besoin d'appeler pour chaque forme ces correctifs à la main, ou je peux créer une sorte de manière globale pour résoudre ce problème? Je voudrais aller avec la méthode la plus simple si possible.

Je voudrais éviter la façon classique, d'ajouter du code à toutes mes formes. Donc, je suis à la recherche de meilleurs moyens, et je voudrais voir plus d'idées.

Était-ce utile?

La solution

Je suppose que la plupart de vos contrôles utilisent un DockStyle, et que vous obtiendrez 90% de la voie en termes de mise à jour de l'interface graphique sur les changements d'orientation. Pour le ListView, vous devrez ajouter un code.

Vous pouvez ajouter un gestionnaire d'événements sur Form.Resize, et mettre en code pour redimensionner les colonnes de ListView. Vous pouvez dire portrait vs paysage en comparant la largeur vs hauteur. Il y a aussi un moyen d'ajouter un gestionnaire d'événements sur un changement d'orientation réelle, mais il est Interop et je ne me souviens pas de la désinvolture de code. Form.Resize devrait être suffisant pour la plupart des cas.

Vous pouvez consulter un exemple

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top