DataGridView事件" RowsAdded"没有为NewRow显示正确的RowIndex

时间:2016-11-12 20:44:00

标签: c# datagridview

使用以下命令在dataGridView1.Rows.Add(); 中创建新行

private void button1_Click(Object sender, EventArgs e) 
{
       dataGridView1.Rows.Add(); 
}

private void dataGridView1_RowsAdded(Object sender, DataGridViewRowsAddedEventArgs e) 
{
       MessageBox.Show(e.RowCount + ";" + e.RowIndex); 
} 

我有一个新行,但e.RowIndex仍然在新创建的行之前显示索引。

{{1}}

因此,如果我有2行,我会正常地使用RowIndex 0和1。 但是当以编程方式添加一个带有" .add()"的新行时事件RowsAdded显示RowIndex仍然是1而不是2,这是新创建的行。

1 个答案:

答案 0 :(得分:0)

这可能有所帮助,或者使其更加混乱。该行将插入最后一个新行之前:

dataGridView1.RowsAdded += (o, e) => Debug.Print(e.RowIndex + "\t" + dataGridView1.RowCount 
                                         + "\t" + dataGridView1.Rows[e.RowIndex].IsNewRow);
dataGridView1.Columns.Add("", "");  //  0   1   True
dataGridView1.Rows.Add();           //  0   2   False
dataGridView1.Rows.Add();           //  1   3   False
dataGridView1.Rows.Add();           //  2   4   False

但如果用户添加了行,则在用户刚输入的最后一行之后添加新行:

1   2   True
2   3   True
3   4   True