Probleme sur Panel [ VB.NET ] !!

Résolu
Nbiss Messages postés 18 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 27 avril 2008 - 11 nov. 2005 à 02:12
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

2 réponses

Utilisateur anonyme
11 nov. 2005 à 12:09
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.
3
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
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
0
Rejoignez-nous