在按钮单击时在有界dataGridView中添加新行

时间:2017-04-01 07:19:28

标签: c# datagridview

我有一个datagridview并使用datatable作为数据源填充它。

我想在按钮点击时添加一个新行,使用方法首先取消绑定它,然后在其中添加新行。如下:

 dataGridView1.AutoGenerateColumns = false; 
 dataGridView1.DataSource= null;
 dataGridView1.Rows.Add();

但不是在现有行下面添加新行,而是清除行中的现有数据。我认为将该行作为新行。

如何在现有行下添加新行,并将数据保存在其他行中。

注意 - datagridview视图的列是自定义列。

1 个答案:

答案 0 :(得分:0)

如果需要保持现有行的安全,则必须保留数据源。可以试试以下吗?

public partial class Form1 : Form
{
    DataTable dt;

    public Form1()
    {
        InitializeComponent();

        InitDataGridView();
    }

    private void InitDataGridView()
    {
        dt = new DataTable();

        dt.Columns.Add("A"); dt.Columns.Add("B");

        var dr = dt.NewRow();

        dr["A"] = "A-init"; dr["B"] = "B-init";

        dt.Rows.Add(dr);

        dataGridView1.DataSource = dt;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        var dr = dt.NewRow();

        var counter = dt.Rows.Count;

        dr["A"] = "A-" + counter; dr["B"] = "B-" + counter;

        dt.Rows.Add(dr);
    }
}