我正在尝试从事件按钮单击中删除textbox
控件:panel
private void button2_Click(object sender, EventArgs e)
{
panel1.Controls.OfType<TextBox>().ToList().Clear();
}
但它不起作用
我正在尝试从事件按钮单击中删除textbox
控件:panel
private void button2_Click(object sender, EventArgs e)
{
panel1.Controls.OfType<TextBox>().ToList().Clear();
}
但它不起作用
您的方法不起作用的原因是您正在创建一个新列表,未连接到面板(您的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));