[VB.NET] Afficher plusieurs fois le même objet dynamique
Résolu/Fermé
hcp7kuz
Messages postés
238
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
-
21 mai 2016 à 19:03
hcp7kuz Messages postés 238 Date d'inscription mardi 18 août 2015 Statut Membre Dernière intervention 23 mars 2019 - 22 mai 2016 à 10:05
hcp7kuz Messages postés 238 Date d'inscription mardi 18 août 2015 Statut Membre Dernière intervention 23 mars 2019 - 22 mai 2016 à 10:05
A voir également:
- [VB.NET] Afficher plusieurs fois le même objet dynamique
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Tableau croisé dynamique - Guide
- Vente objet occasion entre particulier - Guide
- Qu'est ce qu'une femme fait 3 fois par jour - Forum Loisirs / Divertissements
- Imprimer plusieurs fois la même image sur une page ✓ - Forum Logiciels
2 réponses
NHenry
Messages postés
15047
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 mars 2023
331
21 mai 2016 à 20:16
21 mai 2016 à 20:16
Tu fais une boucle pour générer autant de contrôle que necessaire.
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
Modifié par cs_Le Pivert le 22/05/2016 à 08:20
Modifié par cs_Le Pivert le 22/05/2016 à 08:20
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
hcp7kuz
Messages postés
238
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
24
22 mai 2016 à 10:05
22 mai 2016 à 10:05
Merci ! C'est ce que je cherchais.
Modifié par hcp7kuz le 21/05/2016 à 20:31
Edit :
Je voudrais y accéder depuis toutes les sub/fonction/...
21 mai 2016 à 20:50
21 mai 2016 à 22:35
Je voudrais juste afficher plusieurs fois la même PictureBox.
Merci de ton aide.
22 mai 2016 à 00:54
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