Question

Supposons que j'ai le fil 1, le fil de l'interface utilisateur de la fenêtre principale et le fil 2, un fil de l'interface utilisateur de connexion au format modal.

Maintenant, le thread 1 exécute une partie de code et souhaite modifier un élément d'interface utilisateur dans le formulaire de connexion afin d'appeler un délégué pour modifier quelque chose dans le thread 2. Mais lorsqu'il le fait, le formulaire de connexion est masqué derrière la fenêtre principale et il n'y a aucun moyen pour moi de le ramener. La sélectionner dans la barre des tâches ne fait rien et écrire "Activate ()" à la fin de la méthode invoquée ne fait rien non plus.

Comment puis-je empêcher l'interface utilisateur de thread 2 de devenir cachée?

Merci

Était-ce utile?

La solution

Appelez Focus () sur votre formulaire de connexion après avoir appelé pour mettre à jour la fenêtre principale. De même, il peut être utile de définir la fenêtre parente du formulaire de connexion comme étant la fenêtre principale lorsque vous l'affichez.

(dans votre classe d'interface utilisateur principale)

using (YourLoginForm f = new YourLoginForm()){

    YourLoginForm.Show(this)
}

Une autre solution consiste à utiliser ShowDialog () au lieu de Afficher ( ) , et demandez à votre formulaire de connexion de retourner un DialogResult selon que la connexion a réussi ou non. ShowDialog () doit automatiquement définir votre formulaire de connexion comme modal et avoir le focus.

Autres conseils

wow .... auto pwn. k, la seconde fenêtre en train de disparaître n’est pas une question

Mais la question dans le commentaire est toujours valable .... Lorsque je fais ShowDialog dans un deuxième thread, comment puis-je empêcher la nouvelle fenêtre d’agir séparément de la fenêtre principale? c'est-à-dire que je ne veux pas que l'utilisateur minimise la fenêtre principale lorsqu'elle est derrière la seconde fenêtre. Si un autre programme apparaît en haut et cache tout, cliquez sur l'icône de la fenêtre principale dans la barre des tâches pour afficher la seconde fenêtre, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top