(VB 8) Problême form fille

Messages postés
13
Date d'inscription
lundi 30 mai 2011
Statut
Membre
Dernière intervention
2 mars 2016
-
Bonsoir, j'aimerais de l'aide concernant l'utilisation d'une form fille appelée elle même par une form fille :

Appel de la première form fille depuis la form principale

------------------------------------------------
FormSecondaire = New FormSecondaire
Dim t As New Thread(AddressOf AfficherForm)
t.IsBackground = True : t.Start()


----------------

  Sub AfficherForm()
        FormSecondaire.ShowDialog()
  End Sub

----------------------------------------------


Appel de la seconde form fille qui est appelée à partir de la première form fille

------------------------------------------------
TroisiemeForm = New TroisiemeForm
Dim t As New Thread(AddressOf FormPrincipale.AfficherTroisiemeForm)
 t.SetApartmentState(ApartmentState.STA) : t.IsBackground = True : t.Start()


--------------
  Sub AfficherTroisiemeForm()
         TroisiemeForm.ShowDialog()
  End Sub

-------------------------------------------------


Tout fonctionne sauf que si je ferme la deuxième forme (qui a ouvert la troisieme), la troisieme forme reste ouverte mais certains éléments au sein de celle ci ne marche plus comme picturebox, toolstrip, etc...
Comment puis-je faire ?

Merci de m'aiguiller et bonne journée à tous :D

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
Afficher la suite 

10 réponses

Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 décembre 2019
322
0
Merci
Bonsoir,
Pense à utiliser la coloration syntaxique, quand tu postes un code c'est beaucoup plus lisible.

Dans l'événement IsClosing de la deuxième form, il faut que tu écrive
TrroisiemeFom.Close()
Commenter la réponse de Whismeril
Messages postés
13
Date d'inscription
lundi 30 mai 2011
Statut
Membre
Dernière intervention
2 mars 2016
0
Merci
Ha oui effectivement c'est bien plus lisible avec désolé.
En revanche j'ai mal posé ma question, je veux justement que la troisieme form reste ouverte quand je ferme la deuxième mais les éléments au sein de celle ci ne marche plus comme picturebox, toolstrip, etc... alors qu'ils marchent tant que je laisse la deuxieme form ouverte, c'est ce problème que j'aimerais résoudre.
Bonne soirée
Whismeril
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 décembre 2019
322 -
Ha oui effectivement c'est bien plus lisible

n'est ce pas!
Merci NHenri
Commenter la réponse de neyja
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 décembre 2019
322
0
Merci
En ce cas, avec si peu d'infos ça va être impossible de te répondre.

Et d'ailleurs, le peu d'info me laisse perplexe: pourquoi fait tu un thread pour lancer les form (je n'en vois pas l'intérêt, il me semble donc qu'il y faille un raison bien particulière)? Et en plus en mode Dialog, ce qui est sensé bloquer l'exécution de la form appelante, mais vu que l'appel vient d'un thread, je ne pense pas que ça bloque la form....
Commenter la réponse de Whismeril
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
Bonjour,
Pour moi, dès lors que le chargement et l'affichage de la 2ème form fille résulte de l'exécution d'un fil distinct démarré par la première form fille, fait que seule la première form fille a "la main" sur cette fenêtre. En fermant la première form fille, plus rien n'a la main sur la seconde.
L'affichage de la fenêtre de la seconde form fille n'est alors qu'un graphique inerte résiduel d'un form qui n'existe plus mais dont la fenêtre graphique n'a pas été détruite.

EDIT il serait à ce propos intéressant d'utiliser la fonction WindowFromPoint de la librairie "user32" de l'Api de Windows alors que le curseur se trouve sur cette "Form". Je ne serais pas surpris de ce que le handle retourné soit celui du form Parent et non celui de la seconde form fille.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
Messages postés
13
Date d'inscription
lundi 30 mai 2011
Statut
Membre
Dernière intervention
2 mars 2016
0
Merci
Ah d'accord, dans ce cas est-il possible de "léguer" la form ouverture par la premiere form fille à la form principale ?
Commenter la réponse de neyja
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
Evite tout simplement d'ouvrir tes forms filles dans des fils différents ! Cela ne sert rigoureusement à rien ! Whismeril (que je salue) t'en a dit un sage mot, non ?
Commenter la réponse de ucfoutu
Messages postés
13
Date d'inscription
lundi 30 mai 2011
Statut
Membre
Dernière intervention
2 mars 2016
0
Merci
D'accord merci pour vos réponses c'est juste que je suis débutant et je fais des essais sans but de logiciel x) je pensais donc que ça pouvait être nécessaire dans certains projets.
Commenter la réponse de neyja
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
Je ne peux que te féliciter (c'est ainsi que l'on devient un bon développeur) de t'imposer des petits exercices/tests isolés qui demeureront toujours la meilleure manière de construire ultérieurement des applications beaucoup mieux construites et mieux maitrisées
Cet exercice-là, toutefois, n'est pas celui qui convient pour te former au "multithreading", que l'on réserve en général à l'exécution, en parallèle, de tâches très distinctes entre elles.
Un exemple (ici : de traitement de données) ?
- un fil distinct pour l'interface (tous tes Forms, contrôles, etc ...).
- un fil réservé à l'importation de données
- un fil réservé à l'enregistrement de données
- un fil éventuellement réservé à la communication (en réseau, ...) .
Bonne étude et amitiés.
Commenter la réponse de ucfoutu
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 décembre 2019
322
0
Merci
Bonsoir,

En complément de ce que t'as dit Ucfoutu ( à qui je retourne un salut tout aussi cordial)

Pour le sujet de fil:
http://codes-sources.commentcamarche.net/faq/11107-interactions-entre-form-en-net-c-et-vb-net

Pour apprendre Vb.net:
http://plasserre.developpez.com/cours/vb-net/
Commenter la réponse de Whismeril
0
Merci
Merci à vous je vais continuer à m'exercer :)
Commenter la réponse de neyja