2013-01-22 30 views
1

我有一個devexpress導航菜單項,打開一個數據輸入表單(用戶控制)。用戶控件具有驗證規則,強制用戶不要將文本框留空。而且,迄今爲止它的工作狀況還不錯。Devexpress導航菜單使屏幕freez

但是,當數據輸入用戶控件已經顯示時,點擊其他菜單項時出現問題。這一次,屏幕凍結和堵塞,我必須重新啓動系統。什麼是可能的原因和解決方案?提前 感謝這裏有一些代碼快照:

​​
+1

您是否嘗試調試以查看它卡住的位置? –

+0

調試輸出顯示:「線程''(0x10e8)已退出,代碼爲0(0x0)」 – aby

+0

您可以發佈表單的代碼嗎? (包含導航菜單和數據輸入表單的表單) – kenrogers

回答

0

任何時候,一個菜單項被點擊時,你正在清理以前的控制你的主面板,並用一個新的替換它。也許它是ucDataEntry控件中導致應用程序掛起的驗證邏輯? (您沒有發佈該控件的代碼,所以我不能確定。)

另外,通過調用mainPanel.Controls.Clear(),您正在泄漏內存。此函數的文檔聲明您必須顯式調用Dispose()方法來清除以此方式清除的任何控件。

+0

但是,當我在mainPanel.Controls.Clear()之前放置uc.Dispose()時,它會引發異常。我該如何處理這些控件? – aby

+0

對不起,我想出瞭如何處置。並且,這裏是我用於驗證 私人無效NameTextBox_Leave(對象發件人,EventArgs的) { 如果(isNameInCorrectFormat(NameTextBox.Text).Equals(假)) { NameTextBox.SelectAll()一個簡單的代碼; NameTextBox.Focus(); } } – aby