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
| Dim i, fin As Integer
Dim photo As String
'objet de calcul intermédiaire
Dim calcul As Integer
fin = Me.DGAjoutPhoto.VisibleRowCount - 1
If fin = 0 Then
MessageBox.Show("Il n'y a pas d'image pour ce taxon", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
For i = 0 To fin
Dim Pic(compteur) As PictureBox
If Not Me.DGAjoutPhoto.Item(i, 0) Is DBNull.Value Or Me.DGAjoutPhoto.Item(i, 0) <> Nothing Then
photo = Me.DGAjoutPhoto.Item(i, 1)
'test le compteur si compteur = 0, il n'y a pas de photo affichée
If compteur = 0 Then
'Position de la picturebox
x = 32
y = 32
'instancie la picturebox
Pic(compteur) = New PictureBox
'dimension par défaut de la picturebox
Pic(compteur).Size = New System.Drawing.Size(150, 200)
'charge la photo dans la picturebox avec le path de la textbox
Pic(compteur).Image = Image.FromFile(photo)
'recherche la meilleure dimension de l'image
Affichagephoto(Pic(compteur))
'localisation de l'image
Pic(compteur).Location = New System.Drawing.Point(x, y)
'l'image devient visible
Pic(compteur).Visible = True
'instanciation des variables largeur et hauteur
largeur = Pic(compteur).Size.Width
hauteur = Pic(compteur).Size.Height
'Ajoute la photo au panel
Me.PanelAjoutPhoto.Controls.Add(Pic(compteur))
Else
'Instancie la picturebox
Pic(compteur) = New PictureBox
'dimension par défaut de la picturebox
Pic(compteur).Size = New System.Drawing.Size(150, 200)
'calule la position théorique de la nouvelle picturebox
calcul = x + largeur + 40
'Chargement de la photo dans la picturebox à l'aide du path contenu dans la textbox
Pic(compteur).Image = Image.FromFile(photo)
'Détermination de la meilleure dimension de la photo
Affichagephoto(Pic(compteur))
'regarde si la photo tient entièrement dans la ligne
If (calcul + Pic(compteur).Width) < 968 Then
'Si oui, alors la position x de la picturebox = calcul
x = calcul
Else
'Si non, on passe à la ligne
y = y + hauteur + 40
x = 32
End If
'localisation de la picturebox
Pic(compteur).Location = New System.Drawing.Point(x, y)
'localisation de la textbox
Pic(compteur).Visible = True
'instancie largeur et hauteur
largeur = Pic(compteur).Size.Width
hauteur = Pic(compteur).Size.Height
'Ajout de la picturebox au panel Ajout Photo
Me.PanelAjoutPhoto.Controls.Add(Pic(compteur))
'regarde si la position y de la picturebox est dans la partie visible du panel
If y > 384 Then
'Si oui, alors agrandissement du panel et création d'un autoscroll
Me.PanelAjoutPhoto.AutoScroll = True
Me.PanelAjoutPhoto.AutoScrollMargin = New System.Drawing.Size(10, y + 200)
End If
End If
End If
'Incrémente le compteur à 1
compteur += 1
Next i
End If |
Partager