Application MDI (VB.Net) [Résolu]

NetJoao 22 Messages postés vendredi 3 juin 2005Date d'inscription 29 septembre 2005 Dernière intervention - 1 sept. 2005 à 22:32 - Dernière réponse : sktemoyala 1 Messages postés dimanche 23 octobre 2011Date d'inscription 31 octobre 2011 Dernière intervention
- 31 oct. 2011 à 16:25
Je suis sur un projet avec un feuille MDI et feuilles Childs.
Sur ma feuille MDI, j'ai un statusbar avec 3 panels.
J'aimerais lorsque je ferme un formulaire enfant modifier le texte du panel 1 par exemple.
Comment dois-je faire ?
Afficher la suite 

12 réponses

NetJoao 22 Messages postés vendredi 3 juin 2005Date d'inscription 29 septembre 2005 Dernière intervention - 2 sept. 2005 à 21:16
+3
Utile
J'ai enfin trouvé !!!! houra !!!
Merci beaucoup pour ton aide, ça m'a éclairé...
Détail de ma solution (ça peut être utile pour d'autre et ça vient en complément de tes explications):

Dans la feuille MDI :


Public
Class Form1

Inherits System.Windows.Forms.Form

Public MDIFilleActive
As Form2

Private
Sub mnuNew_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
handles mnuNew.Click
MDIFilleActive =
New Form2()
MDIFilleActive.MdiParent =
Me
MDIFilleActive.Show()

With
Me
.StatusBar1.Text = "NetJoao"

End
With
End
Sub

Dans la feuille ENFANT :


Public Class Form2

Inherits System.Windows.Forms.Form
Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click

Dim f
As Form1

With
Me
f = .MdiParent
f.StatusBar1.Text = "NetJoao -- Réussi !!!"

End
With
End s
ub

Encore merci pour ton aide scortex84.
Cette réponse vous a-t-elle aidé ?  
scortex84 379 Messages postés mardi 19 mars 2002Date d'inscription 20 avril 2011 Dernière intervention - 2 sept. 2005 à 10:38
0
Utile
Hello,

tu passes en parametre ta feuille MDI aux feuilles filles, ou alors tu déclares une variable public du type : monformMDI as new maformMDI

Sur le close des feuilles mdi, tu fais monformMDI.panel1.text = "Coucou" (je ne sais pas si panel a une propriete texte...)

Bon courage !

Seb.
NetJoao 22 Messages postés vendredi 3 juin 2005Date d'inscription 29 septembre 2005 Dernière intervention - 2 sept. 2005 à 12:05
0
Utile
Salut,
Merci de t'intéresser à mon problème.
Mais ta réponse ne me convient pas car tu me dis de modifier le panel (il y a une propriété text) à l'évènement close de la feuille MDI. Je ne souhaite pas fermer ma feuille MDI !
J'ai ma feuille MDI et dans cette feuille MDI plusieur feuille enfant d'ouverte, je veux sur activation d'une feuille enfant, Modifier mon statusbar.
Comment faire ?
Merci de ton aide...
scortex84 379 Messages postés mardi 19 mars 2002Date d'inscription 20 avril 2011 Dernière intervention - 2 sept. 2005 à 14:14
0
Utile
Pardon, petit erreur. Pas sur le close de la MDI mais sur le close de ma feuille fille !!! Ou sur l'evenement que tu veux !!! Activate, ou autre.

Voilou en tout cas ça fonctionne !

Bon courage,

Seb.
scortex84 379 Messages postés mardi 19 mars 2002Date d'inscription 20 avril 2011 Dernière intervention - 4 sept. 2005 à 21:15
0
Utile
Hello,

C'est ce que je t'expliquais, tu t par contre un peu compliqué la vie... Mais bon, l'essentiel est que cela marche et que tu sois content !

Seb.
NetJoao 22 Messages postés vendredi 3 juin 2005Date d'inscription 29 septembre 2005 Dernière intervention - 5 sept. 2005 à 07:14
0
Utile
Salut,
Je suis ouvert à une solution plus simple, si tu veux bien ?
NetJoao.
psycho81 88 Messages postés mardi 4 mai 2004Date d'inscription 17 février 2008 Dernière intervention - 6 sept. 2005 à 10:42
0
Utile
Salut, je note une mauvaise utilisation des with, voici un code plus simple (je ne rentrerai pas dans les détails plus techniques). Bonne prog !

Public
Class Form1

Inherits System.Windows.Forms.Form

Public MDIFilleActive
As Form2

Private
Sub mnuNew_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
handles mnuNew.Click
MDIFilleActive =
New Form2()
with MDIFilleActive

.MdiParent = Me
.Show()

end with

StatusBar1.Text = "NetJoao"

End
Sub

Dans la feuille ENFANT :


Public Class Form2

Inherits System.Windows.Forms.Form
Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click

MdiParent.f.StatusBar1.Text = "NetJoao -- Réussi !!!"

End s
ub

L'homme était,est et sera un éternel apprenti
psycho81 88 Messages postés mardi 4 mai 2004Date d'inscription 17 février 2008 Dernière intervention - 6 sept. 2005 à 10:46
0
Utile
oups ! petite erreur minime !

Dans la feuille ENFANT :


Public Class Form2

Inherits System.Windows.Forms.Form
Private
Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click

MdiParent.StatusBar1.Text = "NetJoao -- Réussi !!!" 'le ".f" était en trop
End
s
ub

L'homme était,est et sera un éternel apprenti
NetJoao 22 Messages postés vendredi 3 juin 2005Date d'inscription 29 septembre 2005 Dernière intervention - 6 sept. 2005 à 11:31
0
Utile
Salut,
Je suis d'accord avec toi pour le with dans la feuille MDI.
Par contre ton code ne marchera pas dans la feuille enfant. Tu es obligé de déclarer une variable ("f") qui instancie le Form1, sans ça tu n'auras pas la main sur le "StatusBar1" !
J'ai testé ton code dans mon appli. il marche pas !
psycho81 88 Messages postés mardi 4 mai 2004Date d'inscription 17 février 2008 Dernière intervention - 6 sept. 2005 à 17:22
0
Utile
J'avoue l'avoir fait à l'oeil, j'ai pas visual studio sous la main. Cependant ne serait pas un truc d'option explicite qui est configuré sur ON ? perso je l'enleve car je trouve ce mode trop contraignant sans aucune tolérance à l'inconnu et ... à l'erreur (pour certain cette tolérance à l'erreur est une calamité, personnelement je la trouve d'une utilité essentielle dans l'utilisation des HashTable pour stoker des objet de type différents indeterminé) . Cependant je comprends tout à fait que ce code génère une erreur car on travaille sur un System.Windows.forms.form (qui ne contient pas par défaut de StatusBar1, bien sur ...) . Je me dit donc qu'en le Ctypant ca donnerai ca:

CType(MdiParent,Form1).StatusBar1.Text = "NetJoao -- Réussi !!!"

ou si on en a une utilisation répété ca donnerai ca

With Ctype(MdiParent,Form1)

.StatusBar1.Text = "bla bla"
.AutreObjet.AutrePropriete = Valeur

End With

Enfin je dis ca sans tester, juste par intuition ... Dans l'histoire on économiserai une definition de pointeur (je sais, ca fait gros radin ... mais j'entrevois ca dans une utilisation massive)

Vali vala ... Bonne prog !

L'homme était,est et sera un éternel apprenti
NetJoao 22 Messages postés vendredi 3 juin 2005Date d'inscription 29 septembre 2005 Dernière intervention - 6 sept. 2005 à 21:12
0
Utile
Merci pour ta participation et il est vrai que l'on apprends tout le temps et de tous....
Bonne prog. !
sktemoyala 1 Messages postés dimanche 23 octobre 2011Date d'inscription 31 octobre 2011 Dernière intervention - 31 oct. 2011 à 16:25
0
Utile
Bonjour

Je voudrais créer une application en vb 2008 en utilisant les mdi forms mais je n'y arrive pas. Votre contribution me sera très utile

Merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.