1
我有一個例程,我循環遞歸通過窗體上的所有控件,並處理其中一些代碼。從面板中刪除控件不會將其從窗體中刪除?
根據用戶的選擇,通過使用屏幕添加和刪除控件。
我發現panel.Controls.Remove(control1)
並未真正將其從表單中刪除。當我運行通過窗體上的控件遞歸循環的例程時,我認爲我已經刪除的控件仍然被找到。
它並沒有 「消失」,直到我做:
panel.Controls.Remove(control1);
this.Controls.Remove(control1)
這個預期?有人可以向我解釋這一點,或者指向我解釋Windows窗體中控制行爲的地方。
謝謝!
很確定這是*不是*預期的行爲。當你說它「仍然被發現」時,你的意思是你仍然可以在屏幕上看到它嗎?你確定這個表單因爲你調用了'Remove'方法而被重新繪製(重新繪製)了嗎? – 2012-01-10 05:57:52
您是否嘗試將它們放在'SuspendLayout'和'ResumeLayout'中,可能表單沒有重繪 – V4Vendetta 2012-01-10 05:59:25
也不應該是'Controls.Remove'? – V4Vendetta 2012-01-10 06:08:34