Accueil > Forum > > > > Correspondance PictureBox - Label
Correspondance PictureBox - Label
lundi 10 juillet 2006 à 11:02:59 |
Correspondance PictureBox - Label

kewan
|
Bonjour,
Voici une question (VB 2005 Express) qui paraitra certainement basique pour certains/certaines, mais je parviens toujours pas à régler ce problème:
Je dispose de 5 "label" et de 5 "picturebox". Lorsque la feuille se charge, je veux que: - l'image 1 corresponde au label 1, - l'image 2 corresponde au label 2, - etc.
Autrement dit, par le code:
' Image 1 Dim Monimage1 As New Bitmap(My.Application.Info.DirectoryPath & "\Ecussons\" & Label1.Text & ".gif") PictureBox1.Image = Monimage1 ' Image 2 Dim Monimage2 As New Bitmap(My.Application.Info.DirectoryPath & "\Ecussons\" & Label2.Text & ".gif") PictureBox2.Image = Monimage2 ...
Cette méthode fonctionne (les images s'affichent et correspondent bien), mais ce n'est pas beau... surtout lorsqu'on dispose d'une quinzaine d'images! N'y aurait-il pas moyen de faire ça proprement, histoire de limiter le nombre de lignes?
|
|
lundi 10 juillet 2006 à 11:15:21 |
Re : Correspondance PictureBox - Label

tof008
|
tu peux essayer de faire un group de controle avec les pictureBox. Et ensuite tu fais une boucle avec laquelle tu fais correspondre le num des images a l'index des pictureBox.
du style : for i = 1 to 10
PictureBox1(i).Image = Monimage" & i & "
next i
(Si la réponse vous convient, appuyez sur réponse acceptée...)
Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire
< body>
|
|
lundi 10 juillet 2006 à 11:21:25 |
Re : Correspondance PictureBox - Label

Renfield
|
un groupe de controles, oui, d'accord.... on est en .Net !!!
Renfield Admin CodeS-SourceS- MVP Visual Basic
|
|
lundi 10 juillet 2006 à 11:27:11 |
Re : Correspondance PictureBox - Label

tof008
|
Autant pour moi Renfield ...Alors sans groupe de controle : for i = 1 to 10
PictureBox" & i & ".Image = Monimage" & i & "
next i
Voila, maintenant je sais pas si ca marche avec .net, mais l'idée est là lol!
(Si la réponse vous convient, appuyez sur réponse acceptée...)
Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire
<>
|
|
lundi 10 juillet 2006 à 11:52:15 |
Re : Correspondance PictureBox - Label

addamsmercredi
|
Réponse acceptée !
Voici un code permettant de faire cela (la méthode de tof008 ne fonctionne pas car VB 2005 n'est pas aussi simple que cela).
J'ai supposé que tous les Labels et PictureBox se trouvent sur la feuille, qu'il y a autant de Labels que de PictureBox et qu'il n'y en a pas d'autres servant à autre chose.
Pour ne pas avoir de problème, le mieux est de les mettre dans des conteneurs et de ne parcourir que les contrôles des conteneurs (ici pour l'exemple, je parcous tous les contrôles de la feuille).
Dim labels As New List(Of Label) Dim pictures As New List(Of PictureBox) Dim ctl As Control Dim pic As PictureBox Dim i As Integer
For Each ctl In Me.Controls If TypeOf (ctl) Is Label Then labels.Add(ctl) ElseIf TypeOf (ctl) Is PictureBox Then pictures.Add(ctl) End If Next
i = 0 For Each pic In pictures pic.Image = New Bitmap(My.Application.Info.DirectoryPath & "\Ecussons\" & labels(i).Text & ".gif") i += 1 Next
|
|
lundi 10 juillet 2006 à 11:55:45 |
Re : Correspondance PictureBox - Label

tof008
|
Bon c'est sur que par rapport à ton code addamsmercredi le mien parait vraiment trop trop simple lol! Mais bon je me suis dit que si ca marchait avec vb, pourquoi pas avec vb 2005 (Si la réponse vous convient, appuyez sur réponse acceptée...)
Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire <>
|
|
lundi 10 juillet 2006 à 12:04:46 |
Re : Correspondance PictureBox - Label

Renfield
|
euh....
PictureBox" & i & ".Image = Monimage" & i & "
ca fonctionne pas en VB6 non plus, tu sais ^^
Renfield Admin CodeS-SourceS- MVP Visual Basic
|
|
lundi 10 juillet 2006 à 13:14:47 |
Re : Correspondance PictureBox - Label

kewan
|
En laissant le code tel quel de Addamsmercredi, sur cette ligne:
pic.Image = New Bitmap(My.Application.Info.DirectoryPath & "\Ecussons\" & labels(i).Text & ".gif")
J'ai l'erreur suivante:
L'exception ArgumentException n'a pas été gérée Le paramètre n'est pas valide.
Mais je pense que nous sommes sur le bon chemin...
|
|
lundi 10 juillet 2006 à 14:31:38 |
Re : Correspondance PictureBox - Label

addamsmercredi
|
Réponse acceptée !
Cette erreur se produit si une image n'existe pas. Ajoute le test
If My.Computer.FileSystem.FileExists(My.Application.Info.DirectoryPath & "\Ecussons\" & labels(i).Text & ".gif") Then pic.Image = New Bitmap(My.Application.Info.DirectoryPath & "\Ecussons\" & labels(i).Text & ".gif") End If
J'ai mis ce code à titre d'exemple surtout pour donner une idée. Mais pour l'utiliser tel quel, il faut être sûr, entre autre, qu'il n'y ait pas de Labels en trop qui n'ont rien à voir avec les images. C'est pour cela que je conseille d'utiliser des conteneurs comme des Panels et d'adapter le code en conséquence.
|
|
lundi 10 juillet 2006 à 14:53:52 |
Re : Correspondance PictureBox - Label

kewan
|
Merci beaucoup addamsmercredi, j'avais effectivement un petit problème au niveau du dossier contenant mes images. Ta solution marche très bien!
|
|
Cette discussion est classée dans : label, image, picturebox, correspondance, dispose
Répondre à ce message
Livres en rapport
|
Derniers Blogs
SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|