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

tininou
Messages postés
3
Date d'inscription
jeudi 20 mai 2004
Dernière intervention
10 février 2009
- 7 févr. 2008 à 13:55 - Dernière réponse : NHenry
Messages postés
14295
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
12 novembre 2018
- 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
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 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é 94 internautes ce mois-ci

Commenter la réponse de cs_casy
NHenry
Messages postés
14295
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
12 novembre 2018
- 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
Messages postés
14295
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
12 novembre 2018
- 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
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 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
Messages postés
3
Date d'inscription
jeudi 20 mai 2004
Dernière intervention
10 février 2009
- 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
Messages postés
3
Date d'inscription
jeudi 20 mai 2004
Dernière intervention
10 février 2009
- 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
Messages postés
14295
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
12 novembre 2018
- 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.