Problème avec My.resources [Résolu]

tininou 3 Messages postés jeudi 20 mai 2004Date d'inscription 10 février 2009 Dernière intervention - 7 févr. 2008 à 13:55 - Dernière réponse : NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscription 14 juillet 2018 Dernière intervention
- 8 févr. 2008 à 08:57
Bonjour,
je rencontre une difficultés avec la fonction suivante :

MyImage = New Bitmap(My.Resources._0)
pb_heure.ClientSize = New Size(151, 86)
pb_heure.Image = CType(MyImage, Image)

_0 correspond à un fichier 0.png. ajouté comme ressources au projet
Ce code est appelé suite à l'appui sur un bouton et m'affiche correctement l'image 0.png

Par contre je souhaiterai qu'a chaque appui sur le bouton l'image change en 1.png puis 2.png.

j'ai essayé quelquechose comme :
fichier = ("My.Resources._" & i)
        If i < 9 Then
            MyImage = New Bitmap(fichier)
            pb_heure.ClientSize = New Size(151, 86)
            pb_heure.Image = CType(MyImage, Image)
            i = i + 1
end if

mais cela ne marche pas : Could not find file '\My.Resources._0'.

Juste une précision le projet est de type Smart Device (pour Pockt PC) mais je crois que dans mon cas cela ne change pas grand chose.

Merci pour votre aide
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 7 févr. 2008 à 20:35
3
Merci
Essaye peut-etre alors directement comme ceci :

MyImage = My.Resources.ResourceManager.GetObject(i.ToString)

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de cs_casy
NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscription 14 juillet 2018 Dernière intervention - 7 févr. 2008 à 14:08
0
Merci
Bonjour

J'avais eu la même problèmatique, et cla solution que j'avais trouvée (sans trop me casser la tête) :

Dans un module :
Public GetBitmap(byval pId as integer)
    select case pId
       Case 0
            Return M.Resources._0
        Case 1
            Return M.Resources._1

       Case 2
...
..
        Case Else
          Return Nothing
    End select
    return Nothing
end function

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Commenter la réponse de NHenry
NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscription 14 juillet 2018 Dernière intervention - 7 févr. 2008 à 14:09
0
Merci
Bonjour

Correction :
à la place de
M.Resources
il faut bien évidemment lire :
My.Resources

Ensuite tu vois comment il faut l'appeler.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Commenter la réponse de NHenry
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 7 févr. 2008 à 15:08
0
Merci
Sinon tu as la possibilité de faire :

MyImage = New Bitmap(My.Resources.ResourceManager.GetObject(i.ToString))

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Commenter la réponse de cs_casy
tininou 3 Messages postés jeudi 20 mai 2004Date d'inscription 10 février 2009 Dernière intervention - 7 févr. 2008 à 17:16
0
Merci
Merci pour vos réponses.

en utilisant la méthode de Casy j'ai  le même message :

"Error    1    Overload resolution failed because no accessible 'New' can be called without a narrowing conversion:
    'Public Sub New(filename As String)': Argument matching parameter 'filename' narrows from 'Object' to 'String'.
    'Public Sub New(stream As System.IO.Stream)': Argument matching parameter 'stream' narrows from 'Object' to 'System.IO.Stream'.
    'Public Sub New(image As System.Drawing.Image)': Argument matching parameter 'image' narrows from 'Object' to 'System.Drawing.Image'. 

en modifiant  MyImage = New Bitmap(My.Resources.ResourceManager.GetObject(i.ToString))
par : MyImage = New Bitmap(My.Resources.ResourceManager.GetObject(i).ToString)
plus de message mais lors du test du programme : NullReferenceException

Je suis un peu perdu.

Concernant la méthode proposé par Nhenry je l'ai utilisé de cette manière (euh excusez moi d'avance si c'est pas comme cela qu'il fallait faire car  je débute)

MsgBox(GetBitmap(i)) =>  de cette manière j'obtiens le même message overload résolution failed

au feeling j'ai rajouté :

MsgBox(GetBitmap(i).tostring) et là la fonction me renvoi "system.drawing.bitmap" au lieu de My.resources._0

Merci encore pour votre aide
Commenter la réponse de tininou
tininou 3 Messages postés jeudi 20 mai 2004Date d'inscription 10 février 2009 Dernière intervention - 7 févr. 2008 à 22:05
0
Merci
Merci .
ca marche impec. !!

Meri à vous pour votre aide rapide et efficace
Commenter la réponse de tininou
NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscription 14 juillet 2018 Dernière intervention - 8 févr. 2008 à 08:57
0
Merci
Bonjour

Si
MsgBox(GetBitmap(i).tostring)
Te retourne le type Bitmap, c'est normal, car GetBitmap te retourne une image (Bitmap) et non une String...

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.