Question

J'utilise une barre de progression pour afficher l'état de la batterie. Si l'utilisateur clique sur la barre de progression, je souhaite afficher une fenêtre contextuelle contenant des détails.

En excluant la solution nécessitant de vérifier si les coordonnées du clic sont dans les limites de la barre de progression, quelqu'un a-t-il trouvé une autre solution ou une solution de contournement?

Était-ce utile?

La solution

OK, un moyen plus facile de réaliser le contrôle personnalisé consiste simplement à commencer par un UserControl, à déposer un ProgressBar dessus et à l'ancrer de manière à ce qu'il remplisse le UserControl, puis à l'exposer comme une propriété publique du UserControl. votre code dirait

myProgressBar1.ProgressBar.Max = 100

au lieu de

progressBar1.Max = 100

Ensuite, utilisez simplement l'événement Click de usercontrol pour afficher les détails (je pense que vous devrez peut-être désactiver la barre de progression interne pour que le clic fonctionne, mais cela ne devrait pas affecter l'apparence de la barre de progression).

De cette façon, votre contrôle utilisateur ressemble exactement à une barre de progression normale (et donc à un cul). :)

Autres conseils

En outre, il est généralement considéré comme une bonne forme de n'utiliser que les contrôles auxquels les utilisateurs sont habitués. Les barres de progression servent uniquement (et sont traditionnellement utilisées) à afficher des informations. C’est pourquoi ils ont supprimé tous les événements d’interaction du Compact Framework.

Je pense qu'une meilleure approche serait de laisser la barre de progression telle qu'elle est et d'ajouter un "Détails". LinkLabel au-dessus ou à côté de la barre.

J'ai toujours écrit mon propre contrôle utilisateur ProgressBar. Cela prend peut-être 5 minutes pour écrire, et le contrôle intégré de la barre de progression ressemble quand même à un âne.

Je pense qu'il est possible d'utiliser Reflection pour cela, mais il serait plus facile d'écrire votre propre contrôle.

Mise à jour: je viens d’essayer de transtyper ProgressBar en tant que contrôle (qui a un événement Click), puis d’attribuer un gestionnaire d’événements dans le code, mais cela ne semble pas fonctionner.

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