IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VB 2010] Charger/effacer l'image de fond d'une form


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 233
    Points : 72
    Points
    72
    Par défaut [VB 2010] Charger/effacer l'image de fond d'une form
    Bonjour à tous,
    Malgré plusieurs heures de recherche, je ne parviens pas à charger/effacer une image de fond dans mon formulaire.
    J'arrive bien à afficher une image en modifiant manuellement les propriété de ma form, mais pas en passant par le code.
    J'ai essayé le code ci-dessous, mais sans succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.BackgroundImage = "A.png"
    MsgBox("effacement de l'image")
    Me.BackgroundImage = ""
    L'erreur qui m'est affichée est la suivante :
    Erreur 1 Impossible de convertir une valeur de type 'String' en 'System.Drawing.Image'. D:\Projets Visual Basic\Etude projet\WindowsApplication1\WindowsApplication1\Form8.vb 291 30 WindowsApplication1


    Quelqu'un saurait comment faire ?
    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    "a.png" est un string, pas une image, c'est ce que te dis le message d'erreur
    ce n'est pas parce que pour toi un (ce) fichier est une image que c'est logique pour un programme, il faut décomposer tout ce que tu veux faire en choses logiques
    en tout cas une image n'est pas forcément un fichier (création ou autre)

    pour obtenir un objet image à partir du chemin (pas juste du nom à priori)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.backgroundimage = system.drawing.image.Fromfile("chemin ici")
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    la propriété BackgroundImage veut un objet et pas un string.

    Pour mettre une image il faut passer par la fonction static FromFile de la classe Image, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.BackgroundImage = Image.FromFile(@"C:\pix\img.jpg");
    Pour supprimer l'image de fond en cours il faut mettre la propriété à null, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.BackgroundImage = null;
    Bon dev.
    Plus je connais de langages, plus j'aime le C.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    (et null c'est Nothing en vb)

    j'ajouterais que si tu mets ton curseur sur BackgroundImage il doit y avoir un popup qui te dit qu'il faut un System.Drawing.Image
    s'il y avait écrit String alors tu aurais pu donner un string
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 233
    Points : 72
    Points
    72
    Par défaut
    Impec, merci pour ces infos.
    Par contre cette backgroundimage n'est pas imprimable ?

  6. #6
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    WtF.....

    ...........please stop spoon feeding !!!

  7. #7
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 233
    Points : 72
    Points
    72
    Par défaut
    Je veux dire simplement que lorsque je veux imprimer la form en question, l'image en background n'apparait pas.
    Comment y remédier ?

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Ah puis tiens une idée complètement en l'air,(ou bien est-ce complètement farfelue ?) non testée et que je ne testerai pas.

    1) Tu vas là et tu te fais un RichTextBox imprimable

    2) tu mets ton RichTextBox imprimable sur toute la surface de ta Form

    3) tu mets ton image dans ton RichTextBox Imprimable

    4) tu mets tous tes autres contrôles sur ton RichTextBox Imprimable

    5) tu fais imprimer ton RichTextBox imprimable

    6) tu ne viens pas te plaindre si cela ne marche pas, parce que j'ai bien dit que ce n'est pas testé et que je ne testerai pas.

    Parce que tes questions à rallonge, sans jamais dire c'est quoi ton vrai problème, c'est en train de ressembler au supplice de la goutte.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  9. #9
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Ah puis tiens une idée complètement en l'air,(ou bien est-ce complètement farfelue ?) non testée et que je ne testerai pas.

    1) Tu vas là et tu te fais un RichTextBox imprimable

    2) tu mets ton RichTextBox imprimable sur toute la surface de ta Form

    3) tu mets ton image dans ton RichTextBox Imprimable

    4) tu mets tous tes autres contrôles sur ton RichTextBox Imprimable

    5) tu fais imprimer ton RichTextBox imprimable

    6) tu ne viens pas te plaindre si cela ne marche pas, parce que j'ai bien dit que ce n'est pas testé et que je ne testerai pas.

    Parce que tes questions à rallonge, sans jamais dire c'est quoi ton vrai problème, c'est en train de ressembler au supplice de la goutte.



  10. #10
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 233
    Points : 72
    Points
    72
    Par défaut
    Bonjour, et merci de vous pencher sur ma question.

    Super ta solution, mais franchement c'est quoi ce genre de réponse ?
    J'essaye de faire une petite appli avec un code "propre", c'est pour faire du bricolage du style "tu bidouilles en collant ton image à l'arrache" ça ne m'intéresse pas spécialement.

    D'autre part, mes questions ne sont pas à rallonge : Il ne t'es pas venu à l'esprit que tout le monde n'est pas comme toi, et n'a pas des connaissances innées en programmations : pour moi (qui suis très bête) il me paraissait logique qu'une image placée en backgroundimage d'une form soit imprimer en même temps que cette dernière. Ce qui ne semble pas être le cas.

    Il est clair que ça ne ferai pas avancer mon problème de ne pas de faire par du dysfonctionnement de la méthode que tu proposes ...

    Enfin, si tu interprètes ma question comme "le supplice de la goute d'eau" j'en suis fort désolé, mais peut être faut-il que tu sois maso d'y répondre ...

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    je pencherais pour le fait qu'il a déjà vu plusieurs de tes questions sur le forum, qu'il ne les apprécie pas spécialement et qu'il t'a répondu une connerie sur le coup de l'exaspération
    tu as moins de points que de messages, donc tu as te prendre des flopées de -1, donc il ne doit pas être seul avec cette opinion
    moi ton pseudo ne me dit rien mais j'ai aussi ma blacklist de fainéant ou de gars qui savent pas s'exprimer ou autre donc je peux comprendre ...
    ajouté à cela que c'est un forum censé être pour les pros, étudiants souhaitant l'être, voire même des développeurs du dimanche motivés et travailleurs ; et autant qu'on est tout à fait capable d'ignorer 49 messages de bas niveau, au 50ème parfois on répond ^^

    après essayer de mettre un string dans une propriété qui demande une image ca montre un niveau de non recherche et d'improvisation
    si tu n'as pas les bases (alors qu'il y a des centaines de cours sur le net) on ne va pas te les donner ici !

    concernant l'impression, il y a des tas de manières d'imprimer un form, ne pars pas du principe qu'on est à côté de ton écran et qu'on voit où est ton problème
    donc sans précision ta question est totalement inutile
    de plus si on part du principe que tu utilises la manière la plus connue d'imprimer le form, elle est aussi une des moins bonne (...) Et puis personne n'imprime de form de toute façon ! c'est même pas une idée ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 233
    Points : 72
    Points
    72
    Par défaut
    Un solution m'a été transmise par MP, J'en fait donc profiter la communauté :
    Pour imprimer, j'utilisait le code suivant
    Il suffit simplement de compléter le code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PrintForm1.Print(Me, PowerPacks.Printing.PrintForm.PrintOption.Scrollable)
    Ce qui permet par la même de s'affranchir des problèmes d'affichage d'une page plus longue que l'écran

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lazarus] Image de fond dans une form
    Par camcam10 dans le forum Lazarus
    Réponses: 1
    Dernier message: 30/05/2011, 09h13
  2. Réponses: 6
    Dernier message: 21/09/2006, 17h33
  3. (EXCEL) Effacer des images gif insérées sur une feuille ?
    Par romo3 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/08/2005, 21h31
  4. Etirer une image de fond dans une cellule
    Par dreamanoir dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/07/2005, 14h39
  5. Réponses: 4
    Dernier message: 03/05/2005, 09h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo