Bonjour,
N'arrivant pas à trouver le moyen de transferer des informations d'un formulaire "fils" vers son formulaire "père", j'ai essayé de gérer par le formulaire "père" les exceptions levées lors des traitement du formulaire "fils".
Voici une partie de mon code qui explique mon raisonnement.
Classe du formulaire "père"
Classe du formulaire "fils"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Public Class Acceuil Private sub OuvertureAdministration() Dim maFenetre as Administration = new Administration() Try maFenetre.ShowDialog() Catch ex as exception Select Case ex.message Case "Fermeture" Me.Close() Case "Cancel" Return Case else MessageBox.Show(ex.Message, titre, MessageBoxButtons.OK, MessageBoxIcon.Error) End Select End Try 'Traitement après fermeture End sub End Class
Je vous passe passe les pavés de code inutiles pour le sujet de discussion.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Public Class Administration Public Sub New() InitializeComponent() ' Traitements divers End Sub Private Sub Quitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Quitter.Click Throw New ArgumentException("Fermeture") End Sub Private Sub AnnulerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Annuler.Click Throw New ArgumentException("Cancel") End Sub End Class
Le problème de cette façon de faire est la suivante :
- Lorsque je lance l'application en mode debug, l'exception lancée par le formulaire "fils" est bien captée par le formulaire "père".
- Lorsque je compile l'application et lance l'assembly (.exe), le clic sur le bouton "Annuler" de "Administration" provoque ce message d'erreur
Connaîtriez-vous un moyen de faire transiter une information d'un formulaire vers le formulaire qui l'a lancé, sachant que plusieurs formulaires différents peuvent lancer le même ?
Sinon, comment faire pour qu'un formulaire "Père" puisse capter les exceptions lancées par un formulaire "Fils" ?
Merci d'avance.
Partager