[VB.NET] Afficher plusieurs fois le même objet dynamique
Résolu
hcp7kuz
Messages postés
250
Statut
Membre
-
hcp7kuz Messages postés 250 Statut Membre -
hcp7kuz Messages postés 250 Statut Membre -
Bonjour,
Comme dit dans le titre, je souhaiterais afficher plusieurs fois le même objet sur ma form.
Un exemple :
J'aimerais que ce code affiche dix PictureBox différentes.
Merci de votre aide,
hcp7kuz
Comme dit dans le titre, je souhaiterais afficher plusieurs fois le même objet sur ma form.
Un exemple :
Dim PictureBox As New PictureBox
PictureBox.Size = My.Resources.Image.Size
PictureBox.Image = My.Resources.Image
PictureBox.SizeMode = PictureBoxSizeMode.StretchImage
For x As Integer = 0 To 10
PictureBox.Location = New Point(x * 50, x * 50)
Me.Controls.Add(PictureBox)
Next
J'aimerais que ce code affiche dix PictureBox différentes.
Merci de votre aide,
hcp7kuz
A voir également:
- [VB.NET] Afficher plusieurs fois le même objet dynamique
- Tableau croisé dynamique - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Liste déroulante dynamique excel - Guide
- Afficher taille dossier windows - Guide
- Vente objet occasion entre particulier - Guide
2 réponses
Bonjour à tous,
Mettre un Form de 318x343
un Panel de 300x300 avec ce code:
en cliquant sur les Pictures tu as leur nom, tu peux aussi les déplacer, voir cet exemple:
https://codes-sources.commentcamarche.net/source/101417-puzzle-en-drag-and-drop
Voilà
@+ Le Pivert
Mettre un Form de 318x343
un Panel de 300x300 avec ce code:
Option Strict On
Public Class Form1
Dim image As PictureBox
Dim x, y, diff, dify As Int32
Dim vignette As Integer
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim i As Int32
Panel1.Controls.Clear()
y = 0
x = 0
For i = 1 To 9
'Création d'une image objet
image = New PictureBox
image.Width = 100
image.Height = 100
image.BorderStyle = BorderStyle.Fixed3D
image.SizeMode = PictureBoxSizeMode.StretchImage
image.Visible = True
image.Name = "mapicture " & i
image.Image = My.Resources.Copie_de_Copie_de_Créte_001'adapter le nom de l'image
vignette = 100
image.SetBounds(x, y, vignette, vignette)
x += vignette
'vérifier s'il ya suffisamment d'espace dans l'axe x pour ajouter une image
If x >= Panel1.Width Or (x + vignette) > Panel1.Width Then
diff = Panel1.Width - x
'S'il n'y a pas assez d'espace, commencer une nouvelle ligne ci-dessous
y += vignette
x = 0
End If
If ((y + vignette) > Panel1.Height) Then
dify = Panel1.Height - y
End If
AddHandler image.MouseDown, AddressOf PictureBox_MouseDown
AddHandler image.MouseMove, AddressOf PictureBox_MouseMove
AddHandler image.MouseDoubleClick, AddressOf PictureBox_DoubleClick
'ajouter une image
Panel1.Controls.Add(image)
Next i
End Sub
Private Sub PictureBox_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Left Then
x = e.X
y = e.Y
End If
End Sub
Private Sub PictureBox_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Dim pictTmp As PictureBox = DirectCast(sender, PictureBox)
If e.Button = Windows.Forms.MouseButtons.Left Then
pictTmp.Left += (e.X - x)
pictTmp.Top += (e.Y - y)
pictTmp.BringToFront()
End If
End Sub
Private Sub PictureBox_DoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
' On récupère le contrôle cliqué ...
Dim pictTmp As PictureBox = DirectCast(sender, PictureBox)
MsgBox(pictTmp.Name)
End Sub
End Class
en cliquant sur les Pictures tu as leur nom, tu peux aussi les déplacer, voir cet exemple:
https://codes-sources.commentcamarche.net/source/101417-puzzle-en-drag-and-drop
Voilà
@+ Le Pivert
Edit :
Je voudrais y accéder depuis toutes les sub/fonction/...
Je voudrais juste afficher plusieurs fois la même PictureBox.
Merci de ton aide.
Savoir gérer la portée des variables et les collections sont des notions de base en programmation.
Tu trouveras de l'information ici
https://plasserre.developpez.com/cours/vb-net/?page=langage-vb1#LV-B-3-o
Mais je te conseille vivement de prendre le cours par le début