0

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

在此处输入图像描述

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

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();

     }
}

我知道我可能必须重置按钮阵列,但不太确定如何使其工作!

4

1 回答 1

1

您的buttons数组仅在应用程序启动期间创建一次,并且每个 Generate 仅覆盖单元格中的按钮,而旧按钮保持不变;所以 Export 类仍然使用你buttons迄今为止添加到数组中的所有内容。

在不重写代码的情况下修复它的最简单方法是将buttons = new Button[col][];部分从Form1ctor 移动到loadMe方法。

于 2013-03-28T12:52:54.920 回答