Afficher picturebox récupérée d'un autre formulaire fermé [Résolu]

Signaler
Messages postés
35
Date d'inscription
samedi 15 décembre 2018
Statut
Membre
Dernière intervention
15 janvier 2019
-
cs_Le Pivert
Messages postés
6577
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 février 2020
-
Bonjour,
je voudrais récupérer une image d'un picturebox d'un formulaire fermé et le faire s'afficher dans un second à son ouverture (pour le mettre en fond dans un picturebox).
Si quelqu'un a une idée.

Merci

8 réponses

Messages postés
14278
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 février 2020
350
Bonjour

quand tu fermes le formulaire 1, tu enregistres l'image quelques part.
Quand tu ouvres le formulaire 2, tu lui transmet cette image.

Voir
https://codes-sources.commentcamarche.net/faq/11107-interactions-entre-form-en-net-c-et-vb-net
Messages postés
35
Date d'inscription
samedi 15 décembre 2018
Statut
Membre
Dernière intervention
15 janvier 2019

Merci, c'est ce que je pensais, mais tu as vu mon autre post sur lequel j'ai un soucis de plantage.

Comment être sur de pouvoir écrire dans un répertoire accessible sur le DDur du pc ou l'application va s'installée?
Messages postés
14278
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 février 2020
350
Tu n'es pas obligé d'enregistrer cette image sur le disque, ça peut être dans une variable

Formulaire 1 avec variable Bitmap
Formulaire 2 retourne Bitmap à F1
Formulaire 3 reçoit Bitmap de F1

Lit le tuto, il montre plusieurs façons de faire
Messages postés
35
Date d'inscription
samedi 15 décembre 2018
Statut
Membre
Dernière intervention
15 janvier 2019

ok je vais étudier cela.
Merci pour ton aide...j'en aurais surement encore besoin ;)

Sais-tu pourquoi la méthode ci-dessous fonctionne avec l'intervention d'un "clic" et si je fais la meme chose a l'ouverture de mon form, cela ne fonctionne pas ?

Private Sub BtnancLogo_Click(sender As Object, e As EventArgs) Handles BtnancLogo.Click
        Dim file_name As String = Application.ExecutablePath
        file_name = file_name.Substring(0, file_name.LastIndexOf("\bin")) &
        "\LogoSociete."
        PicBoxLogo.Image = Image.FromFile(file_name & "bmp")

    End Sub


 Private Sub FormDevis_Load(sender As Object, e As EventArgs) Handles Me.Load
        Dim file_name As String = Application.ExecutablePath
        file_name = file_name.Substring(0, file_name.LastIndexOf("\bin")) &
        "\LogoSociete."
        PicBoxLogo2.Image = Image.FromFile(file_name & "bmp")
    End Sub
Whismeril
Messages postés
14278
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 février 2020
350
Essaye au Shown plutôt qu’au load, sans certitude je ne fais plus de winform depuis quelques années
Messages postés
35
Date d'inscription
samedi 15 décembre 2018
Statut
Membre
Dernière intervention
15 janvier 2019

Avec shown cela ne fonctionne pas mieux!
Messages postés
6577
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 février 2020
96
Bonjour,

comme ceci:

Public Class Form1
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim file_name As String = Application.StartupPath  'chemin du dossier de l'exe
        PictureBox1.Image = Image.FromFile(file_name & "\Guadeloupe 189.jpg")  'adapter le nom de l'image avec l'extension
    End Sub
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim file_name As String = Application.StartupPath  'chemin du dossier de l'exe
        PictureBox1.Image = Image.FromFile(file_name & "\Guadeloupe 189.jpg")  'adapter le nom de l'image avec l'extension
    End Sub
End Class

Messages postés
35
Date d'inscription
samedi 15 décembre 2018
Statut
Membre
Dernière intervention
15 janvier 2019

J'ai mis un événement "got focus" et cela à l'air de fonctionner.

Y a t'il une différence fondamentale entre StartupPath et ExecutablePath?
cs_Le Pivert
Messages postés
6577
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 février 2020
96
Application.StartupPath = chemin du dossier où se trouve l’exécutable


Application. ExecutablePath = chemin de l’exécutable

une petite astuce, quand tu as un doute tu mets ceci:

MsgBox(Application.StartupPath)


MsgBox(Application.ExecutablePath)


cela te renseigne tout de suite

@+
Messages postés
35
Date d'inscription
samedi 15 décembre 2018
Statut
Membre
Dernière intervention
15 janvier 2019

Nickel! Merci à toi.

Sinon à quoi sert le "load" alors puisqu'il ne lance pas ma méthode?

D'ailleurs j'ai déjà remarqué cela plusieurs fois un "buttonclick" fonctionne à tous les coups mais pas un "load" de la form !!
cs_Le Pivert
Messages postés
6577
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 février 2020
96
Je n'ai pas ce problème!

Afficher picturebox récupérée d'un autre formulaire fermé

pour répondre à la question initiale, voir ceci:

https://plasserre.developpez.com/cours/vb-net/?page=windows-forms1#LX-C

@+