(VB 8) Problême form fille

neyja Messages postés 13 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 2 mars 2016 - Modifié par NHenry le 16/01/2016 à 20:39
 neyja - 23 févr. 2016 à 21:21
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.

10 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
16 janv. 2016 à 20:26
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()
0
neyja Messages postés 13 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 2 mars 2016
16 janv. 2016 à 21:46
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
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
Modifié par Whismeril le 16/01/2016 à 21:53
Ha oui effectivement c'est bien plus lisible

n'est ce pas!
Merci NHenri
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
16 janv. 2016 à 21:53
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....
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 16/01/2016 à 22:59
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
neyja Messages postés 13 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 2 mars 2016
17 janv. 2016 à 13:31
Ah d'accord, dans ce cas est-il possible de "léguer" la form ouverture par la premiere form fille à la form principale ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 janv. 2016 à 13:42
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 ?
0
neyja Messages postés 13 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 2 mars 2016
17 janv. 2016 à 16:17
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 janv. 2016 à 17:56
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.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
17 janv. 2016 à 22:28
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/
0
Merci à vous je vais continuer à m'exercer :)
0
Rejoignez-nous