Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme pour montre un form a partir d'un autre

7 réponses
Avatar
Joseph Oget
bonjour tous,

voila le probleme:

j'ai un FormMain qui a plein de boutons et tout se passe a peu pres comme je
veux.

Maintenant j'ai cree un menu qui est suppose cache ce FormMain et me montre
a la place un autre forme: frmTest.

J'esssaie de faire reference a partir du FormMain a l'autre:

Private Sub Permissions_Clicked....
dim f as New FormTest.frmTest
f.ActiveForm.Activate
End Sub
Dans l'autre forme:

Namespace FormTest

Public Class frmTest
Inherits System.Windows.Forms.Form
Private Sub Main
Dim frmForm As New frmTest' Pas sur si ça sert a quoi que
se soit, j'esperimente....
frmForm.ShowDialog()
End Sub
...

He ben, ça marche pas! Ca me donne une exception et pourtant ca compile. Le
probleme, j'assume, a avoir avec la maniere dont je fais reference au 2eme
forme?
(C'est ma deuxieme semaine sur .NET, alors je patauge..)

Merci d'avance

Joseph

7 réponses

Avatar
Philippe MASINA
Si j'ai bien compris, tu veux cacher le form de départ pour en afficher un
autre.

Essai ca dans ton form de depart

Me.Visible = False
Dim frm As New Form2
frm.ShowDialog()

Tiens moi au courant.

"Joseph Oget" a écrit :

bonjour tous,

voila le probleme:

j'ai un FormMain qui a plein de boutons et tout se passe a peu pres comme je
veux.

Maintenant j'ai cree un menu qui est suppose cache ce FormMain et me montre
a la place un autre forme: frmTest.

J'esssaie de faire reference a partir du FormMain a l'autre:

Private Sub Permissions_Clicked....
dim f as New FormTest.frmTest
f.ActiveForm.Activate
End Sub
Dans l'autre forme:

Namespace FormTest

Public Class frmTest
Inherits System.Windows.Forms.Form
Private Sub Main
Dim frmForm As New frmTest' Pas sur si ça sert a quoi que
se soit, j'esperimente....
frmForm.ShowDialog()
End Sub
....

He ben, ça marche pas! Ca me donne une exception et pourtant ca compile. Le
probleme, j'assume, a avoir avec la maniere dont je fais reference au 2eme
forme?
(C'est ma deuxieme semaine sur .NET, alors je patauge..)

Merci d'avance

Joseph





Avatar
Joseph Oget
Salut Philippe,

Brilliant, merci beaucoup.

joseph
"Philippe MASINA" wrote in
message news:
Si j'ai bien compris, tu veux cacher le form de départ pour en afficher un
autre.

Essai ca dans ton form de depart

Me.Visible = False
Dim frm As New Form2
frm.ShowDialog()

Tiens moi au courant.

"Joseph Oget" a écrit :

bonjour tous,

voila le probleme:

j'ai un FormMain qui a plein de boutons et tout se passe a peu pres comme
je
veux.

Maintenant j'ai cree un menu qui est suppose cache ce FormMain et me
montre
a la place un autre forme: frmTest.

J'esssaie de faire reference a partir du FormMain a l'autre:

Private Sub Permissions_Clicked....
dim f as New FormTest.frmTest
f.ActiveForm.Activate
End Sub
Dans l'autre forme:

Namespace FormTest

Public Class frmTest
Inherits System.Windows.Forms.Form
Private Sub Main
Dim frmForm As New frmTest' Pas sur si ça sert a quoi
que
se soit, j'esperimente....
frmForm.ShowDialog()
End Sub
....

He ben, ça marche pas! Ca me donne une exception et pourtant ca compile.
Le
probleme, j'assume, a avoir avec la maniere dont je fais reference au
2eme
forme?
(C'est ma deuxieme semaine sur .NET, alors je patauge..)

Merci d'avance

Joseph







Avatar
Joseph Oget
A propos une autre question, y a t il un objet Parent:
MyBase.parent.visible = True? Ok la reponse est oui, mais si j'utilise
ca:

Me.Visible = False
Me.Parent.Visible = True
Me.Close

Ca retourne une exception.

Joseph
"Philippe MASINA" wrote in
message news:
Si j'ai bien compris, tu veux cacher le form de départ pour en afficher un
autre.

Essai ca dans ton form de depart

Me.Visible = False
Dim frm As New Form2
frm.ShowDialog()

Tiens moi au courant.

"Joseph Oget" a écrit :

bonjour tous,

voila le probleme:

j'ai un FormMain qui a plein de boutons et tout se passe a peu pres comme
je
veux.

Maintenant j'ai cree un menu qui est suppose cache ce FormMain et me
montre
a la place un autre forme: frmTest.

J'esssaie de faire reference a partir du FormMain a l'autre:

Private Sub Permissions_Clicked....
dim f as New FormTest.frmTest
f.ActiveForm.Activate
End Sub
Dans l'autre forme:

Namespace FormTest

Public Class frmTest
Inherits System.Windows.Forms.Form
Private Sub Main
Dim frmForm As New frmTest' Pas sur si ça sert a quoi
que
se soit, j'esperimente....
frmForm.ShowDialog()
End Sub
....

He ben, ça marche pas! Ca me donne une exception et pourtant ca compile.
Le
probleme, j'assume, a avoir avec la maniere dont je fais reference au
2eme
forme?
(C'est ma deuxieme semaine sur .NET, alors je patauge..)

Merci d'avance

Joseph







Avatar
Philippe MASINA
Si j'ai bien compris tu veux masquer ta premiere fenetre quand tu ouvre une
deuxieme. Et a partir de la deuxieme, tu veux revoir la premiere et fermer la
deuxieme.

Donc pour la premiere form:


Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim frm As New Form2(Me)
Me.Visible = False
frm.ShowDialog()
End Sub
End Class


et pour la deuxieme

Public Class Form2

Private _parent As Form
Public Sub New(ByVal parent As Form)

' This call is required by the Windows Form Designer.
InitializeComponent()

' Add any initialization after the InitializeComponent() call.
_parent = parent
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
_parent.Visible = True
Close()
End Sub

End Class

En fait dans le constructeur de la deuxieme fenetre, il faut recevoir
l'objet de la fenetre parent.
Voila, j'espere que cela fera ton bonheur.


"Joseph Oget" a écrit :

A propos une autre question, y a t il un objet Parent:
MyBase.parent.visible = True? Ok la reponse est oui, mais si j'utilise
ca:

Me.Visible = False
Me.Parent.Visible = True
Me.Close

Ca retourne une exception.

Joseph
"Philippe MASINA" wrote in
message news:
> Si j'ai bien compris, tu veux cacher le form de départ pour en afficher un
> autre.
>
> Essai ca dans ton form de depart
>
> Me.Visible = False
> Dim frm As New Form2
> frm.ShowDialog()
>
> Tiens moi au courant.
>
> "Joseph Oget" a écrit :
>
>> bonjour tous,
>>
>> voila le probleme:
>>
>> j'ai un FormMain qui a plein de boutons et tout se passe a peu pres comme
>> je
>> veux.
>>
>> Maintenant j'ai cree un menu qui est suppose cache ce FormMain et me
>> montre
>> a la place un autre forme: frmTest.
>>
>> J'esssaie de faire reference a partir du FormMain a l'autre:
>>
>> Private Sub Permissions_Clicked....
>> dim f as New FormTest.frmTest
>> f.ActiveForm.Activate
>> End Sub
>> Dans l'autre forme:
>>
>> Namespace FormTest
>>
>> Public Class frmTest
>> Inherits System.Windows.Forms.Form
>> Private Sub Main
>> Dim frmForm As New frmTest' Pas sur si ça sert a quoi
>> que
>> se soit, j'esperimente....
>> frmForm.ShowDialog()
>> End Sub
>> ....
>>
>> He ben, ça marche pas! Ca me donne une exception et pourtant ca compile.
>> Le
>> probleme, j'assume, a avoir avec la maniere dont je fais reference au
>> 2eme
>> forme?
>> (C'est ma deuxieme semaine sur .NET, alors je patauge..)
>>
>> Merci d'avance
>>
>> Joseph
>>
>>
>>





Avatar
Joseph Oget
Philippe,

Merci beaucoup de ton aide, fantastique! Resultat:
'
'====================================== '
Dans le FORM Parent:
'
'====================================== '
Private Sub IPTools_Clicked(sender As Object, e As System.EventArgs)
Me.Visible = False
'
' Il faut inclure une Reference au Parent puisqu'il est passe
comme
' Argument dans le Sub New(ByVal parent As Form) de l'enfant
'
Dim f As New FormIpTools.frmIPTools(Me)
f.ShowDialog
End Sub
'
'====================================== '
Dans le FORM Enfant (FormIpTools.frmIPTools):
'
'====================================== '
'A l'ouverture..
'
Private _parent As Form
'
' Il faudra creer cet Procedure car elle n'existe pas
' par defaut:
'
Private Sub Main
Dim frmForm As New frmIPTools(Me.Parent)
frmForm.ShowDialog()
End Sub

Public Sub New(ByVal parent As Form)
MyBase.New
' The Me.InitializeComponent call is required for Windows Forms
designer support.
Me.InitializeComponent
' TODO : Add constructor code after InitializeComponents
' Add any initialization after the InitializeComponent() call.
_parent = parent
End Sub
'
' Et pour Fermer ce FORM (Enfant) et re-afficher le Parent:
'
Private Sub BtnCloseClick(sender As System.Object, e As System.EventArgs)
_parent.Visible = True
MyBase.Close
End Sub

Merci encore Philippe.

Joseph

"Philippe MASINA" wrote in
message news:
Si j'ai bien compris tu veux masquer ta premiere fenetre quand tu ouvre
une
deuxieme. Et a partir de la deuxieme, tu veux revoir la premiere et fermer
la
deuxieme.

Donc pour la premiere form:


Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim frm As New Form2(Me)
Me.Visible = False
frm.ShowDialog()
End Sub
End Class


et pour la deuxieme

Public Class Form2

Private _parent As Form
Public Sub New(ByVal parent As Form)

' This call is required by the Windows Form Designer.
InitializeComponent()

' Add any initialization after the InitializeComponent() call.
_parent = parent
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
_parent.Visible = True
Close()
End Sub

End Class

En fait dans le constructeur de la deuxieme fenetre, il faut recevoir
l'objet de la fenetre parent.
Voila, j'espere que cela fera ton bonheur.


"Joseph Oget" a écrit :

A propos une autre question, y a t il un objet Parent:
MyBase.parent.visible = True? Ok la reponse est oui, mais si
j'utilise
ca:

Me.Visible = False
Me.Parent.Visible = True
Me.Close

Ca retourne une exception.

Joseph
"Philippe MASINA" wrote in
message news:
> Si j'ai bien compris, tu veux cacher le form de départ pour en afficher
> un
> autre.
>
> Essai ca dans ton form de depart
>
> Me.Visible = False
> Dim frm As New Form2
> frm.ShowDialog()
>
> Tiens moi au courant.
>
> "Joseph Oget" a écrit :
>
>> bonjour tous,
>>
>> voila le probleme:
>>
>> j'ai un FormMain qui a plein de boutons et tout se passe a peu pres
>> comme
>> je
>> veux.
>>
>> Maintenant j'ai cree un menu qui est suppose cache ce FormMain et me
>> montre
>> a la place un autre forme: frmTest.
>>
>> J'esssaie de faire reference a partir du FormMain a l'autre:
>>
>> Private Sub Permissions_Clicked....
>> dim f as New FormTest.frmTest
>> f.ActiveForm.Activate
>> End Sub
>> Dans l'autre forme:
>>
>> Namespace FormTest
>>
>> Public Class frmTest
>> Inherits System.Windows.Forms.Form
>> Private Sub Main
>> Dim frmForm As New frmTest' Pas sur si ça sert a
>> quoi
>> que
>> se soit, j'esperimente....
>> frmForm.ShowDialog()
>> End Sub
>> ....
>>
>> He ben, ça marche pas! Ca me donne une exception et pourtant ca
>> compile.
>> Le
>> probleme, j'assume, a avoir avec la maniere dont je fais reference au
>> 2eme
>> forme?
>> (C'est ma deuxieme semaine sur .NET, alors je patauge..)
>>
>> Merci d'avance
>>
>> Joseph
>>
>>
>>







Avatar
Arnaud
Bonjour,

A moins que je n'ai loupé un truc et puisque vous utilisez .ShowDialog,
est-ce
que ces 4 lignes n'étaient pas suffisantes dans la fenêtre appelante ?

Dim frm As New Form2
Me.Hide()
frm.ShowDialog()
Me.Show()

--
Arnaud,
http://cerbermail.com/?CMJMEZByvW




"Joseph Oget" a écrit dans le message de
news:%
Philippe,

Merci beaucoup de ton aide, fantastique! Resultat:
'
'====================================== > '
Dans le FORM Parent:
'
'====================================== > '
Private Sub IPTools_Clicked(sender As Object, e As System.EventArgs)
Me.Visible = False
'
' Il faut inclure une Reference au Parent puisqu'il est passe
comme
' Argument dans le Sub New(ByVal parent As Form) de l'enfant
'
Dim f As New FormIpTools.frmIPTools(Me)
f.ShowDialog
End Sub
'
'====================================== > '
Dans le FORM Enfant (FormIpTools.frmIPTools):
'
'====================================== > '
'A l'ouverture..
'
Private _parent As Form
'
' Il faudra creer cet Procedure car elle n'existe pas
' par defaut:
'
Private Sub Main
Dim frmForm As New frmIPTools(Me.Parent)
frmForm.ShowDialog()
End Sub

Public Sub New(ByVal parent As Form)
MyBase.New
' The Me.InitializeComponent call is required for Windows Forms
designer support.
Me.InitializeComponent
' TODO : Add constructor code after InitializeComponents
' Add any initialization after the InitializeComponent() call.
_parent = parent
End Sub
'
' Et pour Fermer ce FORM (Enfant) et re-afficher le Parent:
'
Private Sub BtnCloseClick(sender As System.Object, e As System.EventArgs)
_parent.Visible = True
MyBase.Close
End Sub

Merci encore Philippe.

Joseph

"Philippe MASINA" wrote in
message news:
> Si j'ai bien compris tu veux masquer ta premiere fenetre quand tu ouvre
> une
> deuxieme. Et a partir de la deuxieme, tu veux revoir la premiere et


fermer
> la
> deuxieme.
>
> Donc pour la premiere form:
>
>
> Public Class Form1
>
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button1.Click
> Dim frm As New Form2(Me)
> Me.Visible = False
> frm.ShowDialog()
> End Sub
> End Class
>
>
> et pour la deuxieme
>
> Public Class Form2
>
> Private _parent As Form
> Public Sub New(ByVal parent As Form)
>
> ' This call is required by the Windows Form Designer.
> InitializeComponent()
>
> ' Add any initialization after the InitializeComponent() call.
> _parent = parent
> End Sub
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button1.Click
> _parent.Visible = True
> Close()
> End Sub
>
> End Class
>
> En fait dans le constructeur de la deuxieme fenetre, il faut recevoir
> l'objet de la fenetre parent.
> Voila, j'espere que cela fera ton bonheur.
>
>
> "Joseph Oget" a écrit :
>
>> A propos une autre question, y a t il un objet Parent:
>> MyBase.parent.visible = True? Ok la reponse est oui, mais si
>> j'utilise
>> ca:
>>
>> Me.Visible = False
>> Me.Parent.Visible = True
>> Me.Close
>>
>> Ca retourne une exception.
>>
>> Joseph
>> "Philippe MASINA" wrote in
>> message news:
>> > Si j'ai bien compris, tu veux cacher le form de départ pour en


afficher
>> > un
>> > autre.
>> >
>> > Essai ca dans ton form de depart
>> >
>> > Me.Visible = False
>> > Dim frm As New Form2
>> > frm.ShowDialog()
>> >
>> > Tiens moi au courant.
>> >
>> > "Joseph Oget" a écrit :
>> >
>> >> bonjour tous,
>> >>
>> >> voila le probleme:
>> >>
>> >> j'ai un FormMain qui a plein de boutons et tout se passe a peu pres
>> >> comme
>> >> je
>> >> veux.
>> >>
>> >> Maintenant j'ai cree un menu qui est suppose cache ce FormMain et me
>> >> montre
>> >> a la place un autre forme: frmTest.
>> >>
>> >> J'esssaie de faire reference a partir du FormMain a l'autre:
>> >>
>> >> Private Sub Permissions_Clicked....
>> >> dim f as New FormTest.frmTest
>> >> f.ActiveForm.Activate
>> >> End Sub
>> >> Dans l'autre forme:
>> >>
>> >> Namespace FormTest
>> >>
>> >> Public Class frmTest
>> >> Inherits System.Windows.Forms.Form
>> >> Private Sub Main
>> >> Dim frmForm As New frmTest' Pas sur si ça sert a
>> >> quoi
>> >> que
>> >> se soit, j'esperimente....
>> >> frmForm.ShowDialog()
>> >> End Sub
>> >> ....
>> >>
>> >> He ben, ça marche pas! Ca me donne une exception et pourtant ca
>> >> compile.
>> >> Le
>> >> probleme, j'assume, a avoir avec la maniere dont je fais reference


au
>> >> 2eme
>> >> forme?
>> >> (C'est ma deuxieme semaine sur .NET, alors je patauge..)
>> >>
>> >> Merci d'avance
>> >>
>> >> Joseph
>> >>
>> >>
>> >>
>>
>>
>>




Avatar
Joseph Oget
Non Arnaud,

vous essayez (...) et verrez que vous obtenez une erreur qu'un Object n'est
pas referencé.

joseph
"Arnaud" wrote in message
news:
Bonjour,

A moins que je n'ai loupé un truc et puisque vous utilisez .ShowDialog,
est-ce
que ces 4 lignes n'étaient pas suffisantes dans la fenêtre appelante ?

Dim frm As New Form2
Me.Hide()
frm.ShowDialog()
Me.Show()

--
Arnaud,
http://cerbermail.com/?CMJMEZByvW




"Joseph Oget" a écrit dans le message de
news:%
Philippe,

Merci beaucoup de ton aide, fantastique! Resultat:
'
'====================================== >> '
Dans le FORM Parent:
'
'====================================== >> '
Private Sub IPTools_Clicked(sender As Object, e As System.EventArgs)
Me.Visible = False
'
' Il faut inclure une Reference au Parent puisqu'il est passe
comme
' Argument dans le Sub New(ByVal parent As Form) de l'enfant
'
Dim f As New FormIpTools.frmIPTools(Me)
f.ShowDialog
End Sub
'
'====================================== >> '
Dans le FORM Enfant (FormIpTools.frmIPTools):
'
'====================================== >> '
'A l'ouverture..
'
Private _parent As Form
'
' Il faudra creer cet Procedure car elle n'existe pas
' par defaut:
'
Private Sub Main
Dim frmForm As New frmIPTools(Me.Parent)
frmForm.ShowDialog()
End Sub

Public Sub New(ByVal parent As Form)
MyBase.New
' The Me.InitializeComponent call is required for Windows
Forms
designer support.
Me.InitializeComponent
' TODO : Add constructor code after InitializeComponents
' Add any initialization after the InitializeComponent() call.
_parent = parent
End Sub
'
' Et pour Fermer ce FORM (Enfant) et re-afficher le Parent:
'
Private Sub BtnCloseClick(sender As System.Object, e As System.EventArgs)
_parent.Visible = True
MyBase.Close
End Sub

Merci encore Philippe.

Joseph

"Philippe MASINA" wrote in
message news:
> Si j'ai bien compris tu veux masquer ta premiere fenetre quand tu ouvre
> une
> deuxieme. Et a partir de la deuxieme, tu veux revoir la premiere et


fermer
> la
> deuxieme.
>
> Donc pour la premiere form:
>
>
> Public Class Form1
>
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button1.Click
> Dim frm As New Form2(Me)
> Me.Visible = False
> frm.ShowDialog()
> End Sub
> End Class
>
>
> et pour la deuxieme
>
> Public Class Form2
>
> Private _parent As Form
> Public Sub New(ByVal parent As Form)
>
> ' This call is required by the Windows Form Designer.
> InitializeComponent()
>
> ' Add any initialization after the InitializeComponent() call.
> _parent = parent
> End Sub
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button1.Click
> _parent.Visible = True
> Close()
> End Sub
>
> End Class
>
> En fait dans le constructeur de la deuxieme fenetre, il faut recevoir
> l'objet de la fenetre parent.
> Voila, j'espere que cela fera ton bonheur.
>
>
> "Joseph Oget" a écrit :
>
>> A propos une autre question, y a t il un objet Parent:
>> MyBase.parent.visible = True? Ok la reponse est oui, mais si
>> j'utilise
>> ca:
>>
>> Me.Visible = False
>> Me.Parent.Visible = True
>> Me.Close
>>
>> Ca retourne une exception.
>>
>> Joseph
>> "Philippe MASINA" wrote in
>> message news:
>> > Si j'ai bien compris, tu veux cacher le form de départ pour en


afficher
>> > un
>> > autre.
>> >
>> > Essai ca dans ton form de depart
>> >
>> > Me.Visible = False
>> > Dim frm As New Form2
>> > frm.ShowDialog()
>> >
>> > Tiens moi au courant.
>> >
>> > "Joseph Oget" a écrit :
>> >
>> >> bonjour tous,
>> >>
>> >> voila le probleme:
>> >>
>> >> j'ai un FormMain qui a plein de boutons et tout se passe a peu pres
>> >> comme
>> >> je
>> >> veux.
>> >>
>> >> Maintenant j'ai cree un menu qui est suppose cache ce FormMain et
>> >> me
>> >> montre
>> >> a la place un autre forme: frmTest.
>> >>
>> >> J'esssaie de faire reference a partir du FormMain a l'autre:
>> >>
>> >> Private Sub Permissions_Clicked....
>> >> dim f as New FormTest.frmTest
>> >> f.ActiveForm.Activate
>> >> End Sub
>> >> Dans l'autre forme:
>> >>
>> >> Namespace FormTest
>> >>
>> >> Public Class frmTest
>> >> Inherits System.Windows.Forms.Form
>> >> Private Sub Main
>> >> Dim frmForm As New frmTest' Pas sur si ça sert a
>> >> quoi
>> >> que
>> >> se soit, j'esperimente....
>> >> frmForm.ShowDialog()
>> >> End Sub
>> >> ....
>> >>
>> >> He ben, ça marche pas! Ca me donne une exception et pourtant ca
>> >> compile.
>> >> Le
>> >> probleme, j'assume, a avoir avec la maniere dont je fais reference


au
>> >> 2eme
>> >> forme?
>> >> (C'est ma deuxieme semaine sur .NET, alors je patauge..)
>> >>
>> >> Merci d'avance
>> >>
>> >> Joseph
>> >>
>> >>
>> >>
>>
>>
>>