Je rencontre parfois un problème avec Window.ShowDialog()
où la fenêtre se ferme physiquement mais ne retourne pas au point ShowDialog dans le code d'où il a été affiché.Problème ShowDialog à la fermeture
Je donne les résultats suivants:
try
{
log.Debug("Showing new dialog window.");
result = dialogWindow.ShowDialog();
log.Debug("Closing new dialog window.");
}
finally
{
log.Debug("Resetting Opacity: " + this.ToString());
Opacity = 1;
Lock.Release(dialogWindowPadLock);
}
Lorsque la fenêtre essaie de Close()
lui-même, il disparait mais le Opacité n'est pas remis à 1 et la fenêtre est recieveing encore des événements KeyUp mais il est pas physiquement affiché.
Est-ce que quelqu'un a déjà vu quelque chose comme ça?
Cheers,
James
Comme demandé, la méthode pour fermer la fenêtre:
public override void EnterPressed(string input)
{
log.Info("User [" + username + "] successfully activated");
StopNextUserCheck();
ActivateUserExitReason = ExitReason.UserActivated;
Close();
// don't break as we don't want to add the dbp listener
return;
}
Avez-vous quelque chose dans la méthode de fermeture de votre formulaire qui l'empêche de terminer la clôture? –
Oui, veuillez poster les fonctions de fermeture. FormClosed, FormClosing et Disposé – EKS
Vous n'avez pas besoin de cette dernière déclaration. Aussi, essayez simplement d'appeler Close(); et n'appelez pas StopNextUserCheck ou tout autre élément susceptible de provoquer son non-retour. – AKoran