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 :

Afficher une Image depuis un dossier quelque soit le chemin [Débutant]


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut Afficher une Image depuis un dossier quelque soit le chemin
    Bonjour,

    Débutant en VB.net, je me confronte à un problème pour afficher une image correspondant au text d'une textbox. Je m'explique,

    1. je souhaite afficher l'image d'un monarque dont le nom se trouve passé dans une textbox.
    2.Le chemin d'accès au fichier s'inscrit dans un autre textbox.

    Voici le bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Imports System.IO
    Imports System.Drawing
    -----
        Private Sub Chemin_PortraitTextBox_TextChanged(sender As Object, e As EventArgs) Handles Chemin_PortraitTextBox.TextChanged
            Dim exePath As String = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location)
            Dim picturePath As String = Path.Combine(exePath, "Monarques", "Portraits")
     
            If Chemin_PortraitTextBox.Text <> "" Then
                Me.PortraitPictureBox.Image = Image.FromFile(Me.Chemin_PortraitTextBox.Text) 'Affiche l'image suivant le chemin d'accés spécifié dans portraittextbox
            Else
                Me.PortraitPictureBox.Image = Image.FromFile(exePath & "\Portraits\Trone_Vide.jpg") 'S'il n'y a pas de chemin pour l'image alors l'image par defaut est chioisi
            End If
     
        End Sub
     
        Private Sub Chemin_PortraitTextBox_Click(sender As Object, e As EventArgs) Handles Chemin_PortraitTextBox.Click
            Dim exePath As String = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location)
            Dim picturePath As String = Path.Combine(exePath, "Monarques", "Portraits")
     
            Dim OpenFileDialog As New OpenFileDialog
            OpenFileDialog.InitialDirectory = Path.Combine(exePath, "Monarques", "Portraits")
            OpenFileDialog.Filter = "Fichier Image (*.bmp)|*.bmp|Fichier Image (*.Jpg)|*.Jpg"
     
            'choix du fichier...
            If OpenFileDialog.ShowDialog = DialogResult.OK Then
     
                Me.PortraitPictureBox.Image = Image.FromFile(OpenFileDialog.FileName)
            End If
     
            If Chemin_PortraitTextBox.Text <> "" Then
                Me.PortraitPictureBox.Image = Image.FromFile(Me.Chemin_PortraitTextBox.Text) 'Affiche l'image suivant le chemin d'accés spécifié dans portraittextbox
            Else
                Me.PortraitPictureBox.Image = Image.FromFile(exePath & "\Portraits\Trone_Vide.jpg") 'S'il n'y a pas de chemin pour l'image alors l'image par defaut est chioisi
            End If
        End Sub
    Le problème est que le fichier choisi dans la boite de dialogue ne s'inscrit pas dans la textbox et de ce fait, l'image ne s'affiche pas.

    Auriez vous une idée de ce qui ne tourne pas ou une orientation?

    Merci a tous.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 978
    Par défaut
    A quel moment tu écrit dans ta textbox ?
    Il n'y a rien qui le fait dans le code que tu montres.

    Par ailleurs, tu un soucis de conception.
    L'image que tu affiche ligne 27 est systématiquement écrasé par la ligne 31 ou 33.
    Et puisque ta zone de texte reste vide, je dirais que c'est toujours la ligne 33 qui s'exécute.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 547
    Par défaut
    Et une modification par programme du Texbox ne va pas déclencher l'évènement TextChanged de celle-ci.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut
    Bonsoir Popo,

    merci de ton retour.
    J'ai retiré les lignes qui écrasaient les précédentes (je ne m'en était pas aperçu!!!).

    Effectivement, lorsque je clic sur la textbox (chemin portrait)cela m'ouvre la boite de dialogue et me propose bien le répertoire en question.
    Je sélectionne l'image correspondante. Celle-ci s'affiche correctement, mais le chemin ne s'écrit pas dans la textbox et ne reste pas en mémoire. (elle ne s'enregistre pas dans la base de donnée.)
    C'est a partir de cette même textbox qui affiche le chemin de l'image qui lorsqu'il s'affiche fait changer l'image de ma picturebox.

    Ci dessous l'ensemble du code de la feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    Imports System.IO
    Imports System.Drawing
    Public Class EnregForm
        Private Sub TableRoisBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles TableRoisBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.TableRoisBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.RoisDataSet)
        End Sub
     
        Private Sub Enreg_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'RoisDataSet.TableRois'. Vous pouvez la déplacer ou la supprimer selon les besoins.
            Me.TableRoisTableAdapter.Fill(Me.RoisDataSet.TableRois)
        End Sub
     
        Private Sub MoveLastButton_Click(sender As Object, e As EventArgs) Handles MoveLastButton.Click
            TableRoisBindingSource.MoveLast()
        End Sub
     
        Private Sub MoveNextButton_Click(sender As Object, e As EventArgs) Handles MoveNextButton.Click
            TableRoisBindingSource.MoveNext()
        End Sub
     
        Private Sub MovePreviousButton_Click(sender As Object, e As EventArgs) Handles MovePreviousButton.Click
     
            TableRoisBindingSource.MovePrevious()
     
        End Sub
     
        Private Sub MoveFirstButton_Click(sender As Object, e As EventArgs) Handles MoveFirstButton.Click
            TableRoisBindingSource.MoveFirst()
     
        End Sub
     
        Private Sub LectureButton_Click(sender As Object, e As EventArgs) Handles LectureButton.Click
            RoisLectureForm.Visible = True
            Me.Close()
        End Sub
     
        Private Sub EnregistrementButton_Click(sender As Object, e As EventArgs) Handles EnregistrementButton.Click
            Me.Validate()
            Me.TableRoisBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.RoisDataSet)
        End Sub
     
        Private Sub QuitterButton_Click(sender As Object, e As EventArgs) Handles QuitterButton.Click
            AccueilRoisForm.Visible = True
            Me.Close()
        End Sub
     
        Private Sub NouveauButton_Click(sender As Object, e As EventArgs) Handles NouveauButton.Click
            TableRoisBindingSource.AddNew()
        End Sub
     
        Private Sub Chemin_PortraitTextBox_TextChanged(sender As Object, e As EventArgs) Handles Chemin_PortraitTextBox.TextChanged
            Dim exePath As String = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location)
            Dim picturePath As String = Path.Combine(exePath, "Monarques", "Portraits")
     
            If Chemin_PortraitTextBox.Text <> "" Then
                Me.PortraitPictureBox.Image = Image.FromFile(Me.Chemin_PortraitTextBox.Text) 'Affiche l'image suivant le chemin d'accés spécifié dans portraittextbox
            Else
                Me.PortraitPictureBox.Image = Image.FromFile(exePath & "\Portraits\Trone_Vide.jpg") 'S'il n'y a pas de chemin pour l'image alors l'image par defaut est chioisi
            End If
        End Sub
     
        Private Sub Chemin_PortraitTextBox_Click(sender As Object, e As EventArgs) Handles Chemin_PortraitTextBox.Click
            Dim exePath As String = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location)
            Dim picturePath As String = Path.Combine(exePath, "Monarques", "Portraits")
     
            Dim OpenFileDialog As New OpenFileDialog
            OpenFileDialog.InitialDirectory = Path.Combine(exePath, "Monarques", "Portraits")
            OpenFileDialog.Filter = "Fichier Image (*.bmp)|*.bmp|Fichier Image (*.Jpg)|*.Jpg"
     
            'choix du fichier...
            If OpenFileDialog.ShowDialog = DialogResult.OK Then
     
                Me.PortraitPictureBox.Image = Image.FromFile(OpenFileDialog.FileName)
            End If
     
        End Sub
    End Class
    Merci d'avance si tu à un début de réponse.

    Cordialement

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 978
    Par défaut
    Tu n'as toujours pas de code qui écrit dans ta zone de texte.

    Et puisque OpenFileDialog.FileName contient un chemin qui te permet d'afficher correctement l'image, ce même chemin doit pouvoir être écrit dans ta zone de texte.
    Mais si tu n'écrit pas de code pour le faire, tu vas attendre longtemps.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 547
    Par défaut
    Pour le dire autrement, il te manque quelque chose du genre Chemin_PortraitTextBox.Text="....." si c'est bien cette Textbox

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 978
    Par défaut
    Citation Envoyé par umfred Voir le message
    ...
    Merci d'avoir gâcher mes effort pour tenter de le faire réfléchir par lui-même.

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut
    Bonjour, Popo et Umfred,

    désolé de revenir si tard...

    Avant d'avoir lu vos réponses (Umfred a juste confirmé, ce que j'avais trouvé).

    Il me manquais deux lignes de code sous OpenfileDialog.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
               selectedfile = OpenFileDialog.FileName
                Chemin_PortraitTextBox.Text = selectedFile
    Voila, lors du clic sur le textbox "Chemin_portrait...", le dossier "Portraits" s'affiche. Reste a trouver l'image correspondant au monarque.

    Vous remercie vivement tous les deux pour votre aide.

    Cordialement.

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

Discussions similaires

  1. [Débutant] Afficher une Image depuis un dossier quelque soit le chemin
    Par Christian8021 dans le forum VB.NET
    Réponses: 7
    Dernier message: 07/09/2023, 09h23
  2. Afficher une image depuis un fichier
    Par Bourak dans le forum MFC
    Réponses: 1
    Dernier message: 23/06/2007, 15h01
  3. afficher une image depuis un combobox
    Par ghosthacker dans le forum MFC
    Réponses: 5
    Dernier message: 11/06/2007, 10h35
  4. Afficher une image depuis ma base de données MySQL
    Par hnoumbo dans le forum Outils
    Réponses: 3
    Dernier message: 16/08/2006, 08h57
  5. [Image] Afficher une image depuis serveur distant
    Par grinder59 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/05/2006, 09h45

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