Appliquer les modifications à mainforms Forme.Icône au moment de l'exécution
J'ai un Système.De Windows.Les formulaires.Forme et que vous souhaitez modifier la Forme.Icône au moment de l'exécution pour afficher un statut. J'ai réussi à charger l'icône de projets ressources:
Type type = this.GetType();
System.Resources.ResourceManager resources =
new System.Resources.ResourceManager(type.Namespace + ".Properties.Resources", this.GetType().Assembly);
this.Icon = (System.Drawing.Icon)resources.GetObject(
type.Namespace + ".Icons." + statusText + ".ico");
Mais l'icône affichée reste la même (moment de la conception de l'icône) de tous les temps. Dois-je appeler une méthode pour informer le Formulaire pour appliquer les modifications? Quelque chose de mal à propos de mon utilisation de la Forme.Icône?
Vous devez vous connecter pour publier un commentaire.
Il est clair pour moi pourquoi vous faites cela à la dure. Juste ajouter l'icône à vos ressources. Projet + Propriétés, onglet Ressources, la flèche sur le bouton Ajouter une Ressource, Ajouter un Fichier Existant. Vous devez alors utiliser de la sorte au moment de l'exécution:
Où Mumble est le nom de l'icône.
Si vous êtes sûr à 100% que GetObject() ne retourne pas null, alors essayez de définir l'Icône de la propriété dans le concepteur. Si cela ne fonctionne toujours pas alors il ya quelque chose de mal avec le format de l'icône. Assurez-vous qu'il n'a pas trop de couleurs, 256 fonctionne sur XP.
Ok, Siva et Hans où le droit: GetObject retourné null, parce que le nom de la ressource n'était pas droit. Avec la modification suivante il fonctionne:
Merci à tous pour votre aide.
Je Suppose, tout d'abord, votre GetObject(...) retourne la valeur null. C'est la raison de la conversion de type est de se retrouver silencieusement ni à jeter erreur ni de changer l'icône.
Au lieu de cela,si possible, utiliser
les surcharges et puis donner un essai.
Oui, vous avez à changer l'icône à chaque fois que l'état de vos demandes de modifications.
J'ai testé cela avec une simple application WinForm:
Lorsque le programme est en cours d'exécution, en cliquant sur chaque bouton pour changer l'icône de formulaire (et, bien sûr, l'icône dans la barre des tâches) pour l'icône spécifiée. J'ai juste pris quelques icônes de l'ensemble est livré avec Visual Studio et les ajouter au projet du fichier de Ressources.
Vous devriez être en mesure d'ajouter une méthode simple que vous pouvez appeler de n'importe où dans votre code qui définit l'icône (et vous pouvez appeler à partir d'Form_Load en tant que bien):