yd9380
Messages postés4Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention 5 octobre 2006
-
5 oct. 2006 à 20:00
yd9380
Messages postés4Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention 5 octobre 2006
-
5 oct. 2006 à 20:56
J 'ai deux form Form1 et Form2
lorsque je clic sur un bouton (openbt1) de form1
le form2 s ouvre
le bouton de Form1 est desactivé.
Form2.Show()
openbt1.Enabled = False
Sur Form2 j'ai un bouton lorsque je click dessus je veux re-activé le bouton de form1 et fermé form2.
Pour l'instant j'ai ça sur Form2:
Dim f As Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form2but1.Click
f.openbt1.Enabled = True
Me.Close()
End Sub
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 oct. 2006 à 20:24
Salut
C'est normal
Quand tu crées la nouvelle instance de la Form1, elle appartient à ta Form2 puisque c'est elle qui l'a créé.
Donc quand tu détruis Form2, tu détruis aussi les objets qui lui appartiennent.
Il va donc falloir définir tes objets à un niveau supérieur.
Je ne suis pas très à l'aise avec .Net, alors voici ce qu'il faudrait faire en VB6 (pas garanti)
Dans une Sub Main (première procédure lancée par ton programme), il faut déclarer les formes que tu vas utiliser après, genre :
Public f As Form1
Quand tu voudras créer une instance de ta forme, il faudra faire
Set f = New Form1
f.Show
Ensuite, je pense que le fait de fermer Form2 ne détruira pas 'f' puisqu'elle est définie au niveau global
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on
yd9380
Messages postés4Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention 5 octobre 2006 5 oct. 2006 à 20:56
c'est une idée mais c'est pas cela le probleme vient de la communication entre les deux forms car meme si je ne ferme pas le form2 j'ai l'erreur
System.NullReferenceException: Object reference not set to an instance of an object.
at Territory01.Form2.Button1_Click(Object sender, EventArgs e) in C:\territory\Territory01\Form2.vb:line 65
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)