如何删除程序生成的按钮

时间:2016-01-10 21:19:18

标签: c# winforms button

我在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"

1 个答案:

答案 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);
         }

在您的其他方法中,您可以访问该列表并将其删除