2009-10-19 39 views
0

我有時會看到Window.ShowDialog()這個窗口在物理上關閉的問題,但沒有返回到ShowDialog指向的位置。關閉時出現ShowDialog問題

我有以下幾點:

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);  
} 

當窗口試圖Close()本身,它自敗但不透明度不會重新設置爲1,窗口仍然recieveing KEYUP事件,但它不是物理顯示。

以前有沒有人見過類似的東西?

乾杯,

詹姆斯

按照要求,方法關閉窗口:

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

您的表單的近距離方法是否有阻止它完成關閉的操作? – 2009-10-19 14:23:45

+0

是的,請發佈關閉功能。 FormClosed,FormClosing並處理 – EKS 2009-10-19 14:31:29

+0

您不需要最後一個return語句。另外,只需調用Close();並且不要調用StopNextUserCheck或其他任何可能導致它不返回的東西。 – AKoran 2009-10-19 16:55:54

回答

1

我不知道我理解你的問題,但也許嘗試設置不透明度改變窗戶關閉事件。

另外,嘗試手動設置打開的窗口的DialogResult。

+0

問題不在於不透明,而僅僅是問題的一個指標。即使我關閉了result = dialogWindow.ShowDialog()所示的窗口,問題仍然存在。它在這行之後從不執行任何操作。 – James 2009-10-19 16:07:12

+0

我編輯了我的答案,也許它會幫助你。 – Shimmy 2009-10-19 19:32:04