更新按钮阵列并导出

时间:2013-03-28 03:43:03

标签: c# winforms export-to-excel

我正在创建一个生成按钮网格的小程序。然后,我使用我创建的单独导出类将此网格导出到MS Excel。加载表单时生成网格,numericUpDown允许我决定我希望网格具有的行数,当我按下Gen按钮时,网格成功导出到Excel。但是,当我修改网格的大小并减少行数并再次单击Gen按钮时,导出的数据无法正确更新,下面的图像解释了我的意思:

enter image description here

这是我在表单后面的代码:

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
        buttons = new Button[col][];
        states = new FormState[col][];
        for (Int32 c = 0; c < col; c++)
        {
            buttons[c] = new Button[col];
            states[c] = new FormState[col];
        }

    }

    private void loadMe()
    {
        panel1.Controls.Clear();
        placeRows();

    }
    private void Form1_Load(object sender, EventArgs e)
    {
        loadMe();

    }

     private void btnGen_Click(object sender, EventArgs e)
     {
         loadMe();

     }
}

我知道我可能需要重置按钮阵列,但不太确定如何使它工作!

1 个答案:

答案 0 :(得分:1)

您的buttons数组在应用启动期间只创建一次,每个Generate只覆盖单元格中的按钮,保持旧按钮不变;因此,导出类仍然使用到目前为止已添加到buttons数组的所有内容。

在不重写代码的情况下解决问题的最简单方法是将buttons = new Button[col][];部分从Form1 ctor移至loadMe方法。