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 :

Allez chercher une image


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Allez chercher une image
    bonjour a tout le monde
    j'ai encore un petit problème en vb
    en faite se code permet de charger une image dans une richtextbox

    voila le code le 1er 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
    Public Class Class_DrawRtb
            Public Sub add_pictures_to_rtb(ByVal pic As Image, ByVal rtb As RichTextBox, ByVal index As Integer)
                Dim x As Clipboard
                Dim a As Integer
                Dim b As Integer
                Dim tmpobj As Object
                tmpobj = x.GetDataObject
                x.SetDataObject(pic)
                a = rtb.SelectionStart
                b = rtb.SelectionLength
                rtb.SelectionLength = 0
                rtb.SelectionStart = index
                rtb.Paste()
                x.SetDataObject(tmpobj)
                If index >= a Then a += 1
                rtb.SelectionStart = a
                rtb.SelectionLength = b
            End Sub
        End Class
    donc le soucis n'est pas la
    voici le 2eme code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            Dim a As New Class_DrawRtb()
     
            a.add_pictures_to_rtb(New Bitmap(""), RichTextBox1, RichTextBox1.SelectionStart)
     
        End Sub
    End Class
    voila le petit soucis
    dans new bitmap ("") normallement entre "" je doit rajouté le chemin de l'image par ex: ("essai.bmp") et donc la sa marche l'image se charge bien dans la richtextbox
    mais je voudrait pouvoir rajouter un openfileDialog pour pouvoir choisir au choix n'importe quelle image en bmp

    comment puis-je faire ?
    Dernière modification par Deepin ; 06/09/2010 à 12h27. Motif: Cliquer sur le bouton Résolu au bas de la page (et non pas rajouter [Résolu] au titre)

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    le début devrait ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Dim fichier As String = ""
            Dim openFileDialog1 As New OpenFileDialog()
     
            '*** boîte de dialogue " Ouvrir Fichiers"
            '    Initialisation du type de fichiers à ouvrir et du répertoire.
            openFileDialog1.Filter = "Fichiers XML (*.xml)|*.xml"
            openFileDialog1.InitialDirectory = xmlFacturesFilePath
     
            If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                Try
                    fichier = openFileDialog1.FileName
    Reste à adapter tes filtres aux extensions des fichiers images et remplacer les "" par fichier.
    A voir, car pas testé.

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci pour la réponse

    bon ne rigoler pas mais voici mon nouveau 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
    Dim a As New Class_DrawRtb()
            Dim fichier As String = ""
            Dim openFileDialog1 As New OpenFileDialog()
     
            '*** boîte de dialogue " Ouvrir Fichiers"
            '    Initialisation du type de fichiers à ouvrir et du répertoire.
            openFileDialog1.Filter = "Fichiers BMP (*.bmp)|*.bmp"
            openFileDialog1.InitialDirectory = "C:\"
     
            If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                Try
                Catch
                    fichier = openFileDialog1.FileName
                End Try
            End If
            a.add_pictures_to_rtb(New Bitmap(fichier), RichTextBox1, RichTextBox1.SelectionStart)
        End Sub
    je ne sais pas si se code a.add_pictures_to_rtb etc...... je l'ai mi au bonne endroit ?
    en tout qu'a quand je lance le code aucune image se charge
    il me dit toujours:
    Le chemin d'accès n'a pas une forme conforme.
    et il souligne le code: a.add_pictures etc......
    Dernière modification par Deepin ; 06/09/2010 à 12h03. Motif: Balises [QUOTE]...[/QUOTE]

  4. #4
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Il manque le using sur le OpenFileDialog.
    On préfèrera la méthode static Bitmap.FromFile(string filename).
    La position du try/catch est totalement inutile, aucune exception ne peut être lancée sur lecture de cette propriété.
    Par contre une exception peut être lancée sur ouverture du bitmap.
    Si l'utilisateur choisit d'annuler l'ouverture de la boite de dialogue tu auras un beau crash car tu n'a pas géré ce cas et du coup "fichier" ne sera pas initialisé correctement.

  5. #5
    Invité
    Invité(e)
    Par défaut
    sa marche
    voila le 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
     Dim a As New Class_DrawRtb()
            Dim fichier As String = ""
            Dim openFileDialog1 As New OpenFileDialog()
     
            '*** boîte de dialogue " Ouvrir Fichiers"
            '    Initialisation du type de fichiers à ouvrir et du répertoire.
            openFileDialog1.Filter = "Fichiers BMP (*.bmp)|*.bmp"
            openFileDialog1.InitialDirectory = "C:\"
     
            If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                fichier = openFileDialog1.FileName
            ElseIf MsgBox("vous n'avez sélectionné aucun fichier.") Then
     
            End If
            a.add_pictures_to_rtb(New Bitmap(fichier), RichTextBox1, RichTextBox1.SelectionStart)
        End Sub
    par contre comme tu a dit quand l'utilisateur choisi une image mais clique sur annuler et bien tout plante
    alors j'ai mais un Else If avec un méssage
    mais comment lui dire d'arrêter de continuer de lire le code parce que il m'affiche le msgbox mais sa plante quand meme

  6. #6
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Il manque toujours le using sur le OpenFileDialog ...

    Bon ...
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public sub AddNewPicture()
        Dim a As New Class_DrawRtb()
        Dim fichier As String = ""
        Using ofd As New OpenFileDialog()
            ofd.Filter = "Fichiers BMP (*.bmp)|*.bmp"
            ofd.InitialDirectory = "C:\"
            If ofd.ShowDialog() = DialogResult.Ok Then
                Image img = Image.FromFile(ofd.FileName)
                a.add_pictures_to_rtb(img, RichTextBox1, RichTextBox1.SelectionStart)
            End If
        End Using
    End Sub

    Je trouve quand même qu'il est inutile de créer une classe Class_DrawRtb vu l'utilisation que tu en fais, tu aurais pu directement en faire une méthode de ton formulaire.
    Le minimum aurait été de passer ta fonction add_pictures_to_rtb en static (shared en VB) afin de ne pas avoir a instancier ta classe Class_DrawRtb vu que l'instance ne sert absolument à rien.

    Faire Else If signifie "sinon si", ca veut dire que si la première condition n'est pas remplie (l'utilisateur n'a pas cliqué sur OK), alors tu va tester une autre condition. Ca n'a pas de sens, soit il clique sur OK, soit il ne le fait pas, il n'y a rien d'autre à tester. D'autant qu'un MessageBox ca s'utilise comme ca : MessageBox.Show("Mon Message")

    Pour "ne pas continuer", il suffit tout simplement de placer le code correctement. Met l'appel de ta fonction DANS le If, si la condition n'est pas remplie, l'appel n'est donc pas effectué.

  7. #7
    Invité
    Invité(e)
    Par défaut
    c'est tout bon merci
    sa marche
    oui je sais quelque fois c'est simple et je réfléchit pas assez
    sa viendra avec le temps

Discussions similaires

  1. chercher une couleur dans une image
    Par Carole73 dans le forum Images
    Réponses: 14
    Dernier message: 06/10/2012, 17h45
  2. [XL-2003] Chercher une image sur le pc et l'afficher dans une USF
    Par bob651 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/07/2009, 23h42
  3. Chercher une image dans une Vidéo
    Par bartmanb dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 24/01/2009, 00h05
  4. Réponses: 2
    Dernier message: 15/07/2008, 08h03
  5. aller chercher une image dans un formulaire
    Par mike5923 dans le forum Struts 1
    Réponses: 2
    Dernier message: 11/01/2008, 10h43

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