你能解釋爲什麼會發生這種情況嗎?以下是重現異常的步驟:Win32Exception - 錯誤創建窗口句柄?
- 在表單上拖放文本框。在窗體上添加任何其他可對焦的控件,例如按鈕。
添加2個事件處理程序爲文本框如下:
private void textBox_GotFocus(object sender, EventArgs e){ ((TextBox)sender).HideSelection = false; //<-- exception highlighted at here. } private void textBox_LostFocus(object sender, EventArgs e){ ((TextBox)sender).HideSelection = true; }
運行形式和文本框中第一次點擊,然後點擊按鈕,然後點擊文本框再次,異常會拋出: 「Win32Exception - 創建窗口句柄時出錯」。
該代碼僅僅是爲了使得當文本框聚焦並失去焦點時相應地改變HideSelection。
UPDATE
我不知道爲什麼是如此不穩定,我創造了另一個項目,現在的問題是不同的,沒有例外,但無限循環,這使得文本框中閃爍,形式似乎並不爲了響應,CPU使用率消耗高達17-20%。最後一個演示仍然打開,該演示仍然會引發Win32Exception
。根本不是線索。現在兩個項目的代碼是一樣的,但問題不同。
正在使用GotFocus和LostFocus事件的第三方文本框控件? –
@Jeremy Thopmson這些事件確實存在於TextBox控件中,只是在設計器中不存在;-) – EtherealMonkey
@ King King,在顯示錶單之前''TextBox'被重繪多次。這是我嘗試診斷問題時首先解決的問題 - 我在Form_Shown()事件處理程序中設置了一個bool標誌,然後用它來防止啓動時的無限循環(通過將代碼包裝在其中)。在啓動後經過無限循環後,我試圖解決您的問題,但是JeffRSon擊敗了我! – EtherealMonkey