Probleme sur Panel [ VB.NET ] !! [Résolu]

Messages postés
18
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
27 avril 2008
- - Dernière réponse : Nbiss
Messages postés
18
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
27 avril 2008
- 11 nov. 2005 à 18:44
Bonjour,

Voila je suis débutant en VB NET j'ai pratiqué le VB 6.0 et j'ai un petit problème avec mon panel que j'ai crée dans mon Form1, dans ce panel j'ai mis 4 picturebox. J'ai voulu grouper mes pictures j'ai donc utilisé le panel.
- Donc dans mon Form1 j'ai (au chargement) :
Dim i
i = 1
For Each Module1.Picture In Panel1.Controls
Module1.Picture.Tag = i
Module1.PictureSelected(i) = 0
i = i + 1

- "Picture" et "PictureSelected" sont bien définies dans mon module1 de la façon suivante :

Public Picture As PictureBox
Public PictureSelected(4) As Integer

- Sur un clique je veux qu'il me remplisse le "PictureSelected(sender.Tag)" de la PictureBox sur laquel j'ai cliqué (c'est une selection) :

Private Sub PictureClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _

PictureBox1.Click, PictureBox2.Click, PictureBox3.Click, PictureBox4.Click

Module1.PictureSelected(sender.Tag) = 1

End Sub

- Je voudrai pouvoir utiliser mon panel dans mon form2, donc j'ai définie form1 dans mon mudule1 :
Public Form1 As New Form1

- Puis dans mon Form2 je vérifie toute les PictureBox et je regarde si "PictureSelected(Module1.Picture.Tag)" vaux 1 alors je remplis avec l'image "herbe.jpg" :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For Each Module1.Picture In module1.Form1.Panel1.Controls
If (Module1.PictureSelected(Module1.Picture.Tag) = 1) Then
Module1.Picture.Image = Image.FromFile(Application.StartupPath.ToString & "/images/herbe.jpg")
End If
Next
End Sub

> Je comprend pas ma condition est jamais réalisé pourtant je selectionne bien une picture de mon form1 ! Pourriez vous m'aider ? Je pensais à un probleme de panel ?
Si je met le code du form2 dans mon form1 ça marche bien ! La je comprend plus ! Help me please!

Merci

N-BISS
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
25
3
Merci
Bonjour,



Voilà, ton code corriger.

Le problème était que dans ton module, tu initialisait une nouvelle form1 alors qu'il fallait lui attribuer la form1 en cours.





Option Explicit On

Option Strict On



Public Module Module1

Public Picture As PictureBox

Public PictureSelected(4) As Integer

Public Form1 As Form1

End Module



Public Class Form1



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Form2.Show()

Module1.Form1 = Me

Dim i As Integer = 1

For Each Module1.Picture In Panel1.Controls

Module1.Picture.Tag = i

Module1.PictureSelected(i) = 0

i += 1

Next

End Sub



Private Sub PictureClick(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles PictureBox1.Click, PictureBox2.Click,
PictureBox3.Click, PictureBox4.Click

Module1.PictureSelected(CInt(CType(sender, System.Windows.Forms.PictureBox).Tag)) = 1

End Sub



End Class







Public Class Form2



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

For Each Module1.Picture In Module1.Form1.Panel1.Controls

If (Module1.PictureSelected(Module1.Picture.Tag) = 1) Then

Module1.Picture.Image =
Image.FromFile(Application.StartupPath.ToString & "/images/herbe.jpg")

End If

Next

End Sub



End Class







Mainteant, juste comme ca, j'ai obtimisé. Ca te seras peut-être inutile suivant la suite de ton code.



Option Explicit On

Option Strict On



Public Module Module1

Public SelectPicture As System.Windows.Forms.PictureBox

End Module



Public Class Form1

Private Sub PictureClick(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles PictureBox1.Click, PictureBox2.Click,
PictureBox3.Click, PictureBox4.Click

SelectPicture = CType(sender, System.Windows.Forms.PictureBox)

End Sub

End Class







Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If Not SelectPicture Is Nothing Then

SelectPicture.Image = Image.FromFile(Application.StartupPath.ToString & "/images/herbe.jpg")

End If

End Sub

End Class





Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 218 internautes nous ont dit merci ce mois-ci

Messages postés
18
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
27 avril 2008
0
Merci
Merci beaucoup !
Ta modification marche nikel, ainsi que la petite optimisation

Merci d'avoir prit un peu de ton temps pour moi c'est sympa!

N-BISS