Changement dynamique d'icone/ressources

Signaler
Messages postés
227
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
26 avril 2012
-
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
-
Bonjour,


J'ai une application de type windows form et j'aimerais savoir s'il est
possible de changer d'icône de façon dynamique de mon exe et de la
barre de titre de ma form !


Je m'explique.

Je voudrais intégrer plusieurs icônes en mode ressource à mon projet et dans mon code :


if Etat = 0 then

  Me.Icon = iconeressource0

...

else

  Me.Icon = iconeressource1

....

end if


Est ce que cela est possible ?

Sinon y'a t'il une méthode ?

Mettre les icônes sur des picturebox ?


Merci

5 réponses

Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
Salut,

Biensur que c'est possible ! Ajoute simplement les icones via l'éditeur de ressources de Visual Basic (dans les propriétés du projet) puis appel la ressource comme ceci :

Me.Icon = My.Resources.NomDeLaRessource

Voila !

@+ Mayzz.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
Messages postés
227
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
26 avril 2012

Salut et merci de ta réponse,

J'ai beau chercher mais je ne trouve pas l'éditeur de ressource.
Je croyais que lorsque l'on ajoute des images en tant que ressource dans une picturebox, la ressource est créée mais tu me dit d'utiliser l'éditeur.... connais pas !

Comment fais tu ?

Pour finir sur ma question :
Je voulais savoir s'il était possible de modifier l'icône de l'exe une fois compilé ?
Ou si cela est possible en faisant une copie de notre exe et remplacer l'icône ?

Merci

ABF
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
t'es bien en VB.Net ..?



Vous êtes ici : Thèmes / VB.NET et VB 2005 / Divers / General / Changement dynamique


Vas dans l'explorateur de solution, fais un click droit sur le projet et tu clique sur 'propriétés', en suite dans l'éditeur de propriétés vas à l'onglet ressources. Dans la barre d'outils, tu clique sur ajouter une ressources.

Quand à l'icone de l'exé, non ce n'est pas possible par le logiciel en lui même. Il faut créer un programme tiers qui modifira les ressources du premier.

Voila.

++





                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
Messages postés
227
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
26 avril 2012

Oui sous .net ;)

Ca me met :
Erreur    1    Une valeur de type 'System.Drawing.Bitmap' ne peut pas être convertie en 'System.Drawing.Icon'.    F:\Temp\CODE\app\app_form\fMain.vb    53    19    app

Pour ce qui est de la modification de ressource est ce compliqué ?
En VB6 j'étais tout de même plus a l'aise mais le .Net me pose beaucoup de problèmes :(
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
non bien au contraire c'est mille fois plus simple en .Net, c'est lors ce que l'on ne maitrise pas que cela parait complexe, mais dès que tu auras compris tu trouveras ça simple comme tout !

Bon revenons à ton problème, dans l'edtieur de ressources tu peus voir grace au premier bouton de la barre d'outils les différents types de ressources pris en charge par celui-ci. Ton problème est qur l'image insérer se trouve être une image et non une icône. 'Me.Icon' requiere une 'System.Drawing.Icon', or, la ressource que tui indique est une Bitamp. Pour insérer une icone, il faut passer par l'éditeur, et ajouter un fichier au format ico.

Bon à savoir : Lors ce que tu désire ajouter une icône à un élément de menu ou à un picturebox par exemple, et que tu le fais via la fenêtre de propriétés ou le smart Tag de celui-ci, tu peux importer l'icone dans le fichier de ressources de l'application, mais celle-ci même si elle est au format icône sera convertie au format bitamp.

Biensur il existe une solution pour convertir une System.Drawing.Bitmap en System.Drawing.Icon :

Me.Icon = System.Drawing.Icon.FromHandle(
My.Resources.MonIcon.GetHicon())

Par contre je ne te garantis pas de résultat car la classe System.Drawing.Icon n'as pas de propriétés permettant de gérer le panneau de couleur (8, 16, 24, 32bits) ni de gestion du plan alpha, pas de gestion des formats non  plus...

Le mieux c'est d'inclure directement ton icône via l'éditeur, c'est la solution la plus propre.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <