angel_of_tower
Messages postés23Date d'inscriptionlundi 1 novembre 2004StatutMembreDernière intervention17 novembre 2007
-
11 déc. 2006 à 20:25
DavidWhitewater
Messages postés81Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention 1 janvier 2010
-
15 déc. 2006 à 21:17
voila j'ais créer un composant en vb.net qui à la particularité d'afficher un image avec une label en dessous.
"Ce composant fonctionne bien. enfin presque!!", il permet de posé une image sur un formulaire, de lui assigné un texte en dessous et de choisir la couleur qui sera transparent lors de l'éxécution.
Mais voila je n'arrive pas à évité le message d'erreur lors du placement sur le formulaire
hé oui car lors de la fabrication mon image avais un contenue qui ne suit pas lors de mise en place sur un formulaire l'image du composant est nul "Nothing" il me donne un message d'erreur disant que il ne pas redessiner mon image puisqu'elle est perdue "le composant perd sa ressource"
DavidWhitewater
Messages postés81Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention 1 janvier 2010 11 déc. 2006 à 21:58
Salut,
Si j'ai bien compris (et c'est pas sûr), ton composant possède une PictureBox et un Label. Le code de se composant contient une ligne qui affecte une image, de tes ressources, à cette PictureBox. Genre :
PictureBox1.image = My.ressources.MonImage
Si ton composant te sert à afficher une image, tu a dû faire une propiété pour définire/obtenir cette image. Genre :
Public Property Image() As Bitmap
Get
Return MonImage
End Get
Set(ByVal value As Bitmap)
MonImage = value
End Set
End Property
Donc, tu supprime la ligne : PictureBox1.image = My.ressources.MonImage
Et éventuellement tu fait un test de valeur nul sur value dans le Set de la propriété.
angel_of_tower
Messages postés23Date d'inscriptionlundi 1 novembre 2004StatutMembreDernière intervention17 novembre 2007 12 déc. 2006 à 18:51
Mon composant a effectivement un picturebox mais dans l'évenement Onpaint
j'affecte l'image de mon PictureBox1.image à Dim img AS image
Puis
'redéssine l'image
e.Graphics.DrawImage(img, destPara)
Mais voila quand je pose mon composant, l'image de mon pictureBox1 n'est pas affecté puisq' en faite lors du placememt tout est nul .
Donc en fait mon composant quand je le place sur mon formulaire doit avoir une image de défaut pour évité le message d'erreur et très important avoir la possibilité d' être réaffecter par une autre image lors de son utilisation.
Merci pour ton intéret
Vous n’avez pas trouvé la réponse que vous recherchez ?
DavidWhitewater
Messages postés81Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention 1 janvier 2010 12 déc. 2006 à 21:22
Salut, tu n'est pas obligé d'avoir une image par défaut pour la picturebox. Il te faut une variable booléenne qui t'indique si le code peux tracer l'image ou pas.
Tu met dans le code d'initialisation du compasant :
Dim ImageExiste as Boolean = False
Puis, lorsque tu est sûr que tu peux placer une image dans la picturebox, tu met
ImageExiste = True
Et dans l'évènement Onpaint tu fait un test
if ImageExiste = False then Exit Sub
Si ca ne marche pas, montre moi ton code d'initialisation du composant (déclaration des variable en tête de ta classe), ainsi que la sub OnPaint et toute les procédures qui sont liées au dessin dans ta picturebox.
DavidWhitewater
Messages postés81Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention 1 janvier 2010 13 déc. 2006 à 21:24
Salut, je crois qu'on s'est pas bien compris. Pas question de faire une propriétée, mais une VARIABLE qui resteras local à ton composant. C'est ton code qui positionne la variable à TRUE lorsque les conditions sont remplis pour pouvoir afficher l'image, sinon est est à FALSE.
L'utilisateur de ton composant toi bien fournir une image pour alimenter le composant, c'est donc à ce moment là que ton code place TRUE dans la variable.
angel_of_tower
Messages postés23Date d'inscriptionlundi 1 novembre 2004StatutMembreDernière intervention17 novembre 2007 14 déc. 2006 à 19:11
C'est bien la le problème quel est le code qui perment de savoir si dans ma PictureBox
if PictureBox1."?" =ImageExist( Boolean) then e.Graphics.DrawImage(img, destPara)
'Si je fais
if PictureBox1.image=Nothing then e.Graphics.DrawImage(img, destPara) ' ne fonctionne pas cela produit une erreur
Erreur 1 L'opérateur '=' n'est pas défini pour les types 'System.Drawing.Image' et 'System.Drawing.Image'. C:\Visual Studio 2005\Projects\***\***\Button.vb 240 12 MonBoutton
Mais quel est donc ce fichue code si je pouvais mettre la main dessus @+