Changement dynamique d'icone/ressources

cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 avril 2012 - 19 juin 2009 à 10:56
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 19 juin 2009 à 23:05
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

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
19 juin 2009 à 20:43
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. <
0
cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 avril 2012
19 juin 2009 à 21:34
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
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
19 juin 2009 à 21:55
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. <
0
cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 avril 2012
19 juin 2009 à 22:25
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 :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
19 juin 2009 à 23:05
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. <
0
Rejoignez-nous