1
我正嘗試從panel
在事件按鈕單擊刪除textbox
控制:卸下面板控制所有的文本框與Lambda表達式
private void button2_Click(object sender, EventArgs e)
{
panel1.Controls.OfType<TextBox>().ToList().Clear();
}
但doesn't工作
我正嘗試從panel
在事件按鈕單擊刪除textbox
控制:卸下面板控制所有的文本框與Lambda表達式
private void button2_Click(object sender, EventArgs e)
{
panel1.Controls.OfType<TextBox>().ToList().Clear();
}
但doesn't工作
之所以你方法不起作用,是你正在創建一個新的列表,沒有連接到面板(你的ToList
調用),然後清除該列表,實際上什麼都不做。
您需要刪除的Controls
收集直接的每個項目:
var textBoxes = panel1.Controls.OfType<TextBox>().ToList();
foreach(var box in textBoxes)
panel1.Controls.Remove(box);
如果你想從表單中刪除控制而不是簡單地明確自己的內容(或者從您剛纔創建的列表中刪除它們),你需要從面板中刪除它們。儘管如此,你仍然可以通過一行代碼實現:
panel1.Controls
.OfType<TextBox>()
.ToList()
.ForEach(t => panel1.Controls.Remove(t));
+1解釋他的代碼 –