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 :

Accèder et trouver l'indice d'une image créée dynamiquement


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Accèder et trouver l'indice d'une image créée dynamiquement
    Chers membres,
    Me voilà confronté à un problème.
    J'ai créé un certain nombre d'image de façon dynamique dans un formulaire via la procedure nouvelles_images()
    Je peux accèder à chaque image créée en double cliquant sur ces dernières via la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PictureBox_DoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
    Ce que je ne réussis pas à faire c'est de créer une procédure permettant d'accèder à n'importe image du formulaire via son indice sans qu'il ne soit nécessaire de cliquer où que ce soit.
    Quelqu'un aurait-il une idée ?
    Merci d'avance.

    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
    Private Sub nouvelles_images()
            Dim i, deplacement_image_horizontal, deplacement_image_vertical As Integer
            For i = 0 To 38
                Dim image As PictureBox = New PictureBox
                image.Name = "Image" & i
                If (i >= 0 And i <= 18) Then
                    If (i = 0) Then
                        deplacement_image_vertical = 10
                        image.Top = deplacement_image_vertical
                        deplacement_image_horizontal = 5
                        image.Left = deplacement_image_horizontal
                    Else
                        deplacement_image_vertical = 10
                        image.Top = deplacement_image_vertical
                        deplacement_image_horizontal =   deplacement_image_horizontal + 75
                        image.Left = deplacement_image_horizontal
                    End If
                 End if
            Next i
    image.Load("C:\Users\jean-jacques\Desktop\Epreuve Intégrée\logos clubs\charleroi.gif")
                image.Visible = True
                image.SizeMode = PictureBoxSizeMode.StretchImage
                image.Width = 55
                image.Height = 55
                AddHandler image.DoubleClick, AddressOf PictureBox_DoubleClick
                Controls.Add(image)
            Next i
        End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub PictureBox_DoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
            Dim selection_image As PictureBox = DirectCast(sender, PictureBox)
            selection_image.Load("C:\Users\jean-jacques\Desktop\Epreuve Intégrée\logos clubs\cercle_bruges.gif")
    End Sub

  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
    depuis la sub qui gère le doble click si tu veux retrouver l'index il est dans la propriété name

    m'enfin le mieux est d'avoir une collection sur ta classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private _Images as new list(of string)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private _Images as new list(of picturebox)
    le mieux serait quand même d'expliquer ce que tu veux faire pour avoir une solution apropriée

    au passage il existe une balise code sur le forum pour la mise en forme du code (bouton # dans l'éditeur de message)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut selectedPictureBox,Load ImageSelected
    bonjour
    he ho tu veux faire un bmpviewer la,si j'arrive à deviner un peu dans tes pensees.Il n'existe pas de PictureBox.SelectedItem ou PictureBox.SelectedIndex.
    Mais quand on veut faire un afficheur d'image on en vient à bout comme ceci:
    Rajout d'un petit imagelist pour stocker la liste d'image et caramba ....
    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
     
     
    Imports System
    Imports System.IO
    Imports System.Windows
    Imports System.Collections.Generic
    Public Class Form1
        Private nbImage As Integer
        Friend WithEvents ImageList1 As ImageList
        Private WithEvents monPic As PictureBox
        Private deplacement_image_vertical As Integer
        Private deplacement_image_horizontal As Integer
        Public Sub New()
     
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            nbImage = 4
     
        End Sub
     
        ' Create an ImageList Object, populate it, and display
        ' the images it contains.
        Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            ' Construct the ImageList.
            ImageList1 = New ImageList
     
            ' Set the ImageSize property to a larger size 
            ' (the default is 16 x 16).
            ImageList1.ImageSize = New Size(55, 55)
     
            ' Add 5 images to the ImageList.
            For i As Integer = 0 To nbImage
                ImageList1.Images.Add(My.Resources.Coucher_de_soleil)
            Next
            ' Add 5 PictureBoxes to the list.
            For i As Integer = 0 To nbImage
                monPic = New PictureBox
                If (i >= 0 And i <= 18) Then
                    If (i = 0) Then
                        deplacement_image_vertical = 10
                        monPic.Top = deplacement_image_vertical
                        deplacement_image_horizontal = 5
                        monPic.Left = deplacement_image_horizontal
                    Else
                        deplacement_image_vertical = 10
                        monPic.Top = deplacement_image_vertical
                        deplacement_image_horizontal = deplacement_image_horizontal + 75
                        monPic.Left = deplacement_image_horizontal
                    End If
                End If
                monPic.Image = ImageList1.Images(i)
                monPic.Visible = True
                monPic.SizeMode = PictureBoxSizeMode.StretchImage
                monPic.Width = 55
                monPic.Height = 55
                AddHandler monPic.MouseDoubleClick, AddressOf monPic_Click
                Controls.Add(monPic)
            Next i
     
        End Sub
     
     
     
        Private Sub monPic_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim selectedPic As PictureBox = DirectCast(sender, PictureBox)
            selectedPic.Cursor = Cursors.Hand
            MessageBox.Show("vous avez clique le PictureBox : " & selectedPic.Name & Me.Controls.IndexOf(selectedPic))
            'ici tu peux recharger dans imagelist l'image voulue avec 
            'l'index Me.Controls.IndexOf(selectedPic)
            Dim numImage As Integer = Me.Controls.IndexOf(selectedPic)
            Me.ImageList1.Images(numImage) = My.Resources.Nénuphars
            selectedPic.Image = Me.ImageList1.Images(numImage)
        End Sub
    End Class
    en esperant que ca fera ton bonheur....envoie moi une carte postale de la cathedrale de Bourges l'historique....

    bon code.....

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut PictureBox.SelectedItem
    rebonjour
    excuse moi non c'est les villes historiques de Charleroi et Bruges......illustres 2 fois 1ere et 2eme guerre mondiales....ah l'histoire...de l'europe....Toutes les grandes batailles de france,je comprends pas ,depuis Louis XVI avec sa guerre de Trente Ans(Artois & Flandres) contre Amsterdam en passant par Napoleon (Waterloo) jusqu'aux 2 dernieres grandes guerres europeennes se sont deroulees en Belgique (Flandres).Avec ca on dit que la Belgique est un petit pays...
    bonne soiree....

Discussions similaires

  1. [XL-2010] ouvrir un userform à partir d'une image créée dynamiquement
    Par eno97 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/10/2012, 11h27
  2. Réponses: 1
    Dernier message: 28/01/2006, 17h37
  3. [ezPDF] Fonction addImage : insérer une image créée dynamiquement
    Par Huntress dans le forum Bibliothèques et frameworks
    Réponses: 37
    Dernier message: 29/11/2005, 11h20
  4. Centrer un texte sur une image créée dynamiquement
    Par rigolman dans le forum Langage
    Réponses: 7
    Dernier message: 11/10/2005, 17h22
  5. Trouver le format d'une image
    Par blaiseac dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 27/09/2005, 22h17

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