2009-10-19 6 views
0

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; 
} 
+0

Avez-vous quelque chose dans la méthode de fermeture de votre formulaire qui l'empêche de terminer la clôture? –

+0

Oui, veuillez poster les fonctions de fermeture. FormClosed, FormClosing et Disposé – EKS

+0

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

Répondre

1

Je ne suis pas sûr d'avoir compris votre question, mais peut-être essayer de définir l'opacité changeant de l'événement de fermeture de la fenêtre.

Également, essayez de définir manuellement le DialogResult de la fenêtre ouverte.

+0

Le problème n'est pas l'opacité en tant que telle, mais simplement un indicateur du problème. Le problème est même si je ferme la fenêtre affichée par result = dialogWindow.ShowDialog(); il n'exécute jamais rien après cette ligne. – James

+0

J'ai édité ma réponse, peut-être que cela vous aidera. – Shimmy

Questions connexes