[VB.NET] Afficher plusieurs fois le même objet dynamique
Résolu
hcp7kuz
Messages postés
243
Date d'inscription
Statut
Membre
Dernière intervention
-
hcp7kuz Messages postés 243 Date d'inscription Statut Membre Dernière intervention -
hcp7kuz Messages postés 243 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- [VB.NET] Afficher plusieurs fois le même objet dynamique
- Tableau croisé dynamique - Guide
- Afficher appdata - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Vente objet occasion entre particulier - Guide
- Liste déroulante dynamique excel - 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