Nbiss
Messages postés18Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention27 avril 2008
-
11 nov. 2005 à 02:12
Nbiss
Messages postés18Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention27 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 _
- 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!
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
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