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

Signaler
Messages postés
3
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
10 février 2009
-
Messages postés
14689
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
8 août 2020
-
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

7 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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
Messages postés
14689
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
8 août 2020
144
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
Messages postés
14689
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
8 août 2020
144
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
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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
Messages postés
3
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
10 février 2009

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
Messages postés
3
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
10 février 2009

Merci .
ca marche impec. !!

Meri à vous pour votre aide rapide et efficace
Messages postés
14689
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
8 août 2020
144
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