有没有办法在datagridview中获取新添加的行?

时间:2009-09-10 13:11:26

标签: c# .net datagridview

我有一个绑定到自定义集合的数据网格视图。 我在UI中添加了删除选项,这将在datagridview中添加和删除一行。

有没有办法在datagridview中获取新添加的行?

2 个答案:

答案 0 :(得分:4)

DataGridView有一个RowAdded事件,每次添加一行时都会触发(duh!)。 Event args的类型为:DataGridViewRowsAddedEventArgs,它上面有一个RowIndex属性,可以让你做类似的事情:

    public Form1()
    {
        InitializeComponent();
        this.dataGridView1.RowsAdded += new DataGridViewRowsAddedEventHandler(dataGridView1_RowsAdded);
    }

    private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
    {
        DataGridViewRow newRow = this.dataGridView1.Rows[e.RowIndex];
    }

答案 1 :(得分:1)

RowPrePaint事件最适合获取新添加的行。我正在使用数据绑定datagridview。

private void dataGridView1_RowPrePaint(object sender, DataGridViewRowsAddedEventArgs e) 
    { 
        DataGridViewRow newRow = this.dataGridView1.Rows[e.RowIndex]; 
    }

RowsAdded事件对我不起作用。我假设,DataGridView不会一次添加一行或存在其他一些问题。 RowsAdded中的e.RowIndex保持返回0或1。