首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何清空TableLayoutPanel

如何清空TableLayoutPanel
EN

Stack Overflow用户
提问于 2015-05-05 02:13:25
回答 2查看 5.2K关注 0票数 3

在我的应用程序中,我有一个名为“WindowsForm”的Dashboard.cs,其中有一个名为dashboardTableItemsWrapper的TableLayoutPanel。现在,一旦用户单击刷新按钮,它将清空表,为了做到这一点,下面是代码,一旦发生单击事件,就会触发这些代码。

代码语言:javascript
复制
dashboardTableItemsWrapper.RowStyles.Clear();
dashboardTableItemsWrapper.ColumnStyles.Clear();

但是这样,刷新按钮就不能工作了,相反,它会在表行中添加新数据,但是我想先清空表,然后向它追加新数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-05 02:24:18

编辑:此页告诉我,Controls.Clear从父控件中删除控件,但不会从内存中删除它们,从而导致内存泄漏。编辑以增加安全处置。

代码语言:javascript
复制
for (int i = dashboardTableItemsWrapper.Count - 1; i >= 0; --i) 
     dashboardTableItemsWrapper[i].Dispose();

dashboardTableItemsWrapper.Controls.Clear(); 
dashboardTableItemsWrapper.RowCount = 0;
票数 2
EN

Stack Overflow用户

发布于 2017-12-16 02:45:29

我知道这是个老问题,但有一个很简单的方法来解决这个问题。

代码语言:javascript
复制
while (tableLayoutPanel1.Controls.Count > 0)
{
    tableLayoutPanel1.Controls[0].Dispose();
}

其他方法的问题是,一旦从控件列表中删除一个控件,下一个控件将被修改,循环将无法正常工作。使用这种方法,您可以在列表中仍然有元素时继续删除第一个元素。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30043174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档