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

Messages postés
22
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
29 septembre 2005
- 1 sept. 2005 à 22:32 - Dernière réponse :
Messages postés
1
Date d'inscription
dimanche 23 octobre 2011
Dernière intervention
31 octobre 2011
- 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

Meilleure réponse
Messages postés
22
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
29 septembre 2005
- 2 sept. 2005 à 21:16
3
Merci
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.

Merci NetJoao 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Messages postés
379
Date d'inscription
mardi 19 mars 2002
Dernière intervention
20 avril 2011
- 2 sept. 2005 à 10:38
0
Merci
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.
Messages postés
22
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
29 septembre 2005
- 2 sept. 2005 à 12:05
0
Merci
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...
Messages postés
379
Date d'inscription
mardi 19 mars 2002
Dernière intervention
20 avril 2011
- 2 sept. 2005 à 14:14
0
Merci
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.
Messages postés
379
Date d'inscription
mardi 19 mars 2002
Dernière intervention
20 avril 2011
- 4 sept. 2005 à 21:15
0
Merci
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.
Messages postés
22
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
29 septembre 2005
- 5 sept. 2005 à 07:14
0
Merci
Salut,
Je suis ouvert à une solution plus simple, si tu veux bien ?
NetJoao.
Messages postés
88
Date d'inscription
mardi 4 mai 2004
Dernière intervention
17 février 2008
- 6 sept. 2005 à 10:42
0
Merci
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
Messages postés
88
Date d'inscription
mardi 4 mai 2004
Dernière intervention
17 février 2008
- 6 sept. 2005 à 10:46
0
Merci
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
Messages postés
22
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
29 septembre 2005
- 6 sept. 2005 à 11:31
0
Merci
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 !
Messages postés
88
Date d'inscription
mardi 4 mai 2004
Dernière intervention
17 février 2008
- 6 sept. 2005 à 17:22
0
Merci
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
Messages postés
22
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
29 septembre 2005
- 6 sept. 2005 à 21:12
0
Merci
Merci pour ta participation et il est vrai que l'on apprends tout le temps et de tous....
Bonne prog. !
Messages postés
1
Date d'inscription
dimanche 23 octobre 2011
Dernière intervention
31 octobre 2011
- 31 oct. 2011 à 16:25
0
Merci
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.