我在winform中根据列表中的内容生成了许多按钮,但是我需要将表单重置为不存在任何新按钮。
生成代码的按钮是:
private int importButtonFactory()
{
int numberOfButtons = 0;
int top = 70;
int left = 12;
foreach (Import import in ImportList)
{
Button importButton = new Button();
importButton.Left = left;
importButton.Top = top;
importButton.Width = 220;
this.Controls.Add(importButton);
top += importButton.Height + 2;
numberOfButtons++;
importButton.Text = import.Mapping;
importButton.Click += (object sndr, EventArgs c_args) => openFile_Click(import.Path);
}
return numberOfButtons;
}
我试过在一个单独的函数中跟随:
Controls.Remove(importButton);
但我收到错误:"The name 'importButton' does not exist in the current context"
答案 0 :(得分:1)
是的,这导致控件实例在不同的函数中声明。您可以创建List<Button>
并稍后将其清除,如
List<Button> buttonList = new List<Button>();
private int importButtonFactory()
{
int numberOfButtons = 0;
foreach (Import import in ImportList)
{
Button importButton = new Button();
....
buttonList.Add(importButton);
}
在您的其他方法中,您可以访问该列表并将其删除