Question

Débutant .NET ici ... J'aimerais créer un bouton dans un formulaire Windows qui affiche une progression ou un "temps de recharge". effet. C'est-à-dire que lorsque le bouton est enfoncé, il devient désactivé. Au fur et à mesure que certains événements ou minuteries progressent, le bouton affiche la progression graphiquement. Lorsque la progression est terminée, le graphique se termine et le bouton devient activé. Des effets similaires peuvent être observés dans de nombreux jeux.

J'avais envisagé d'utiliser une combinaison de la classe Button intégrée et de la fonction GDI + DrawPath, mais la complexité évolutive médiocre et j'ai le sentiment lancinant de penser qu'il doit y avoir un moyen plus simple.

Des idées? Merci.

Était-ce utile?

La solution

Si vous avez vraiment besoin de l'avoir sur le bouton, j'utiliserais un événement de peinture personnalisé.

quelque chose de similaire à:

button += new buttonPaintEvent(buttonPaintEventHandlerMethod);

Autres conseils

La méthode la plus simple consiste à créer une instance du contrôle de barre de progression. Il est alors inutile d’effectuer un codage / une peinture personnalisée. Si vous avez vraiment besoin d'afficher tout ce qui se trouve à l'intérieur du bouton, vous avez deux options. Vous pouvez continuer à changer la propriété Image du bouton ou parcourir l’ensemble du porc et effectuer une peinture personnalisée du bouton. La peinture personnalisée est assez simple, il vous suffit de dessiner du texte et l’image de votre choix.

Un autre moyen simple pourrait être d’avoir deux contrôles, un bouton et une barre de progression qui occupent le même espace sur le formulaire. Lorsque l'utilisateur appuie sur le bouton, masquez-le et affichez la barre de progression. Mettez à jour la barre de progression si nécessaire jusqu'à ce que le traitement soit terminé. Cachez ensuite la barre de progression et réaffiche le bouton.

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