2010-04-01 103 views
1

我有一個最近發生了一個奇怪的問題:擊鍵在Winforms應用程序導致窗口意外關閉

每當我在我的應用程序的任何形式輸入文字,甚至一個字,一個TextBox它使形式和其父母關閉。我檢查迄今如下:

  • 對不按/ MIS分配的事件處理程序可以解釋一個擊鍵一個表格取消
  • 我在幾個窗口使用的KeyPreview但調試表明這不是原因
  • 偏偏任何形式的應用
  • 甚至以全新的文本框下降試圖從文本框聲明(VB.NET)
  • 將R去掉WITHEVENTS聲明形式
  • 上發生的esult是DialogResult.Cancel當我打破後的代碼顯示或ShowDialog的
  • 的形式不使用的AcceptButton或CancelButton屬性(設置爲無)
  • 注:我修改了很多代碼,我有一個大的代碼庫尚未觸及

還有什麼可能導致這種奇怪的行爲?

+1

只是一個鏡頭,但我會嘗試接線一個FormClosing事件,並在那裏放置一箇中斷點,你可以查看堆棧跟蹤,看看你是如何到達那裏的 – 2010-04-01 18:20:01

+0

Mike_G:你是對的你的評論成爲答案,我會upvote你。Slaks得到了複選標記,雖然。 – 2010-04-01 18:33:38

回答

3
  • 按Ctrl + d,E(調試,例外),並告訴Visual Studio的突破,只要任何異常被拋出,然後看看是否有在工作的任何異常。

  • 按Ctrl + D,N(調試,新斷點,函數中斷)並在System.Windows.Form.OnClosing上設置斷點,然後查看調用堆棧。 (或者,在主窗體覆蓋OnClosing,然後設置中有一個斷點)

+0

是的,我實際上有同樣的想法後,我發佈了這個問題。打破錶格關閉處理程序讓我看足夠的調用堆棧來標識一個計時器,該計時器檢查應用程序遊標的狀態並使用goto進行錯誤輸出,當遊標爲空時,應該靜靜地關閉該應用程序。我想知道這個Rube Goldberg發明有多遠。仍不確定文本更改如何影響消息隊列...... – 2010-04-01 18:32:34

1

按鈕的的DialogResult設置爲「取消」的事故。改後恢復爲默認值‘無’,問題這是我的故事