Activation bouton entre 2 form

yd9380 Messages postés 4 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 5 octobre 2006 - 5 oct. 2006 à 20:00
yd9380 Messages postés 4 Date d'inscription jeudi 28 août 2003 Statut Membre Derniè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

  et ça plant au moment ou je clic sur le bouton.

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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
0
yd9380 Messages postés 4 Date d'inscription jeudi 28 août 2003 Statut Membre Derniè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)
0
Rejoignez-nous