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 :

Visualiser les images d'un dossier dans une form !


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 51
    Points : 12
    Points
    12
    Par défaut Visualiser les images d'un dossier dans une form !
    Bonjour à tous !
    J'aurais besoin d'une aide sur la visualisation des petites images dans une listview avec la possibilité ou pas de voir le nom du fichier sous l'image!
    Voici mon code actuel:
    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
    Imports System
    Imports System.Drawing
    Imports System.ComponentModel
    Imports System.Windows.Forms
    Imports System.IO
     
    Public Class Slideshow
        Dim SDK As Object
        Private PluginSettings As cMySettings
        Private TempPluginSettings As cMySettings
        Private allowedExtensions() As String = {".gif", ".jpg", ".bmp", ".png"} ', ".tiff"}
     
        Private Sub Slideshow_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            If Not Directory.Exists(Application.StartupPath & "\Photo") Then
                Directory.CreateDirectory(Application.StartupPath & "\Photo")
            End If
     
            PluginSettings = New cMySettings(Path.Combine(Application.StartupPath, "SlideShow"))
            ' read in defaults
            cMySettings.DeseralizeFromXML(PluginSettings)
     
            ' copy to temp
            TempPluginSettings = New cMySettings(PluginSettings)
            'SDK = CreateObject("RideRunner.SDK")
            mylist()
        End Sub
     
     
        Private Sub mylist()
            Dim imlTemp As New ImageList
            Dim dirFiles() As String = IO.Directory.GetFiles(Application.StartupPath & "\Photo")
            Dim _imgList As New ImageList
            Dim imgSize As New Size
     
            imgSize.Width = TempPluginSettings.PictureSize_X
            imgSize.Height = TempPluginSettings.PictureSize_Y
            _imgList.ColorDepth = ColorDepth.Depth32Bit
            ListView2.LargeImageList = _imgList
     
            Dim count As Integer = 0
            Dim item As New ListViewItem
     
            For Each dirFile As String In dirFiles
     
                For Each extension As String In allowedExtensions
                    If extension = IO.Path.GetExtension(dirFile) Then
     
                        Dim img As New System.Drawing.Bitmap(dirFile)
                        _imgList.ImageSize = imgSize
                        _imgList.Images.Add(img)
                        img.Dispose()
     
                        ListView2.Items.Add(dirFile, count)
                        count += 1
     
                    End If
                Next
            Next
        End Sub
     
        Private Sub listView2_MouseDown(sender As Object, e As MouseEventArgs) Handles ListView2.MouseDown
            Dim results = ListView2.HitTest(e.Location)
     
            If results.Item IsNot Nothing Then
                'MessageBox.Show(Application.StartupPath & "\Photo")
                'MessageBox.Show(results.Item.Text & vbCrLf & results.Location)
                Dim PicturePath As String = Path.GetDirectoryName(results.Item.Text)
                Dim PictureName As String = Path.GetFileName(results.Item.Text)
                SDK.Execute(TempPluginSettings.SendCommandToRR & PictureName)
            End If
     
        End Sub
     
    End Class
    et la partie générant les fichier xml utilisé comme settings:
    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    Option Strict Off
    Option Explicit On
     
    Imports System.IO
    Imports System.Xml
    Imports System.Xml.Serialization
    Imports System.Text
     
    Public Class cMySettings
     
        Public SendCommandToRR As String
        Public PictureSize_X As Integer
        Public PictureSize_Y As Integer
     
        Private Shared XMLFilename As String
     
        Public Sub New()
            SetToDefault(Me)
        End Sub
     
        Public Sub New(FileName As String)
            XMLFilename = FileName
            If Path.GetExtension(XMLFilename).ToLower() <> "xml" Then XMLFilename = XMLFilename + ".xml"
            If File.Exists(XMLFilename) = False Then SerializeToXML(New cMySettings())
        End Sub
     
        Public Sub New(ByRef Settings As cMySettings)
            Me.SendCommandToRR = Settings.SendCommandToRR
            Me.PictureSize_X = Settings.PictureSize_X
            Me.PictureSize_Y = Settings.PictureSize_Y
     
        End Sub
     
        Public Shared Sub SerializeToXML(ByRef Settings As cMySettings)
     
            Dim xmlSerializer As New XmlSerializer(GetType(cMySettings))
     
            Using xmlTextWriter As New XmlTextWriter(XMLFilename, Encoding.UTF8)
                xmlTextWriter.Formatting = Formatting.Indented
                xmlSerializer.Serialize(xmlTextWriter, Settings)
                xmlTextWriter.Close()
            End Using
     
     
        End Sub
     
        Public Shared Sub DeseralizeFromXML(ByRef Settings As cMySettings)
     
            Dim fs As FileStream = Nothing
     
            ' do i have settings?
            If File.Exists(XMLFilename) = True Then
                Try
                    fs = New FileStream(XMLFilename, FileMode.Open, FileAccess.Read)
                    Dim xmlSerializer As New XmlSerializer(GetType(cMySettings))
                    Settings = xmlSerializer.Deserialize(fs)
                Catch
                    'load error of some sort, or OBJECT deserialize error
                    'do we tell anyone?
                    Exit Sub
                Finally
                    If Not fs Is Nothing Then fs.Close()
                    fs = Nothing
                End Try
            End If
     
        End Sub
     
        Public Shared Sub Copy(ByRef SourceSettings As cMySettings, ByRef DestSettings As cMySettings)
     
            DestSettings.SendCommandToRR = SourceSettings.SendCommandToRR
            DestSettings.PictureSize_X = SourceSettings.PictureSize_X
            DestSettings.PictureSize_Y = SourceSettings.PictureSize_Y
        End Sub
     
        Public Shared Sub SetToDefault(ByRef Settings)
            Settings.SendCommandToRR = "MOBILEPHONE_ADDPICTURETOITEM;"
            Settings.PictureSize_X = 70
            Settings.PictureSize_Y = 70
        End Sub
     
        Public Shared Function Compare(ByRef Settings1 As cMySettings, ByRef Setting2 As cMySettings) As Boolean
     
            If Settings1.SendCommandToRR <> Setting2.SendCommandToRR Then Compare = False : Exit Function
            If Settings1.PictureSize_X <> Setting2.PictureSize_X Then Compare = False : Exit Function
            If Settings1.PictureSize_Y <> Setting2.PictureSize_Y Then Compare = False : Exit Function
            Compare = True
     
        End Function
     
    End Class
    Le résultat donne ceci avec les parties entourées que je voudrais voir disparaître !
    Nom : Slideshow.jpg
Affichages : 127
Taille : 29,1 Ko

    Merci de votre aide par avance !

  2. #2
    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
    Bonjour,

    Cela me semble un peu beaucoup loin de la question initiale. Mais comme c'est un exemple qui ne coûte que le temps du téléchargement, tu ne risques probablement pas grand chose d'y jeter un œil. Tout d'un coup...

    https://code.msdn.microsoft.com/Pict...ry-in-06150f45

    Mais, il n'indique pas les noms des fichiers.
    À 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.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 51
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    Cela me semble un peu beaucoup loin de la question initiale. Mais comme c'est un exemple qui ne coûte que le temps du téléchargement, tu ne risques probablement pas grand chose d'y jeter un œil. Tout d'un coup...

    https://code.msdn.microsoft.com/Pict...ry-in-06150f45

    Mais, il n'indique pas les noms des fichiers.
    Merci de votre aide,

    En cherchant un peu à taton, h'ai eu l'idée de remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListView2.Items.Add(dirFile, count)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListView2.Items.Add(Path.GetFileNameWithoutExtension(dirFile), count)
    Ce qui est déjà bien mieux !

    J'avais repéré ce week end effectivement ce code un peu plus lourd mais trés sympa par son rendu .
    J'ai essayé de l'adapter à mon besoin

Discussions similaires

  1. Réponses: 8
    Dernier message: 01/03/2014, 14h55
  2. Afficher les images d'un dossier dans PictureBox
    Par manux0 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/11/2013, 18h26
  3. Réponses: 5
    Dernier message: 18/07/2008, 11h28
  4. Afficher les images d'un dossier dans une IHM
    Par danathane dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2008, 15h27
  5. Comprimez les images des document inclus dans dossier
    Par Fredheg dans le forum VBA Word
    Réponses: 41
    Dernier message: 26/12/2007, 12h39

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