Bonjour à tous !
Petit problème pour laquelle je ne trouve aucune solution :
J'ai 2 forms : Form1 et Form2
J'ai une SUB public (Rafraichir) sur Form1 qui doit afficher une image dans un picturebox.
Public Sub Rafraichir()
If iTheme < 2 Then iTheme += 1 Else iTheme = 0
SetTheme()
Me.Corner1.Image = cadre1
Me.Corner2.Image = cadre2
Me.Corner3.Image = cadre3
Me.Corner4.Image = cadre4
Me.Corner5.Image = cadre5
Me.Corner6.Image = cadre6
End Sub
Quand j'appelle cette sub depuis un évènement Click de Form2, rien ne se produit.
Aucune erreur n'est affichée cependant.
Disons que c'est là tout le problème.
Dans Form1, pour appeler la sub Rafraichir, comme chacun sait, aucun problème et elle s'exécute correctement.
Depuis Form2, je l'appelle en faisant :
Form1.Rafraichir() ' Aucune erreur, mais sans effet
Si je fais :
Dim page1 as Form1
page1.Rafraichir() ' ça ne s'exécute pas non plus.
En fait, au départ et d'un point de vue hiérarchique, c'est Form1 qui arrive en premier. Elle contient un tabcontrol (et ses tabpages) dans lequel vient s'afficher sur demande, la Form2.
Peut-être une histoire de contrôles parent/enfant pour laquelle il faut donner la bonne instruction, mais que je ne connais pas encore.. Oups
Merci Whismeril pour ton lien. Je pense que ça va bp m'aider, même si je débarque avec le 'Binding'.
Après quelques lectures et relectures, je n'arrive pas à comprendre d'où vient "DetailRDVBindingSource" ? Dans mon projet, ça me dit que ce n'est pas déclaré..
En attendant (je n'ai pas VS sous la main alors c'est pas du 100% syntaxe parfaite)
Dans Form2
Dim page1 as Form2'au niveau de la classe
Public Sub New(Form2 LaForm1)'ajout du paramètre dans le constructeur
page1 = LaForm1
End Sub
'ensuite tu peux utiliser la variable page1
Dim page1 as Form1'au niveau de la classe
Public Sub New(LaForm1 as Form1)'ajout du paramètre dans le constructeur
page1 = LaForm1
End Sub
'ensuite tu peux utiliser la variable page1
Ok, ça fonctionne... dans l'idée.. Mais, dans mon cas, ça m'a généré un nombre d'erreurs incalculables dans mon projet.
Il a rejeté toutes les instructions du genre :
Dim newpage as new frm_nouvellepage
Du coup, je suis passé par un Timer qui lance la sub dès qu'une variable du module est modifiée..
Tu as 2 options
Soit à chaque appel de frm_nouvellePage, tu lui passes la référence à Form1.
Soit tu gardes un constructeur sans paramètre.
Dim page1 as Form2'au niveau de la classe
Public Sub New(Form2 LaForm1)'ajout du paramètre dans le constructeur
page1 = LaForm1
End Sub
Public Sub New()’constructeur sans paramètre
End Sub
Dans Form1, pour appeler la sub Rafraichir, comme chacun sait, aucun problème et elle s'exécute correctement.
Depuis Form2, je l'appelle en faisant :
Si je fais :
En fait, au départ et d'un point de vue hiérarchique, c'est Form1 qui arrive en premier. Elle contient un tabcontrol (et ses tabpages) dans lequel vient s'afficher sur demande, la Form2.
Peut-être une histoire de contrôles parent/enfant pour laquelle il faut donner la bonne instruction, mais que je ne connais pas encore.. Oups