[VB.NET] Afficher plusieurs fois le même objet dynamique
Résolu
hcp7kuz
Messages postés
238
Date d'inscription
Statut
Membre
Dernière intervention
-
hcp7kuz Messages postés 238 Date d'inscription Statut Membre Dernière intervention -
hcp7kuz Messages postés 238 Date d'inscription Statut Membre Dernière intervention -
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
2 réponses
-
Tu fais une boucle pour générer autant de contrôle que necessaire.
-
-
-
-
Bonsoir et NHenry t'as juste proposé la solution la plus simple.
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
-
-
Bonjour à tous,
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