datagridview新行索引

时间:2016-06-13 09:09:20

标签: c# datagridview

|Column 1|Column 2|
|1       |1       |
|2       |2       |
|3       |3       |
|4       |4       |
|5       |5       |
|6       |6       |
|7       |7       |
|8       |8       |
|9       |9       |
|        |        |

假设我在我的datagridview上显示这个,现在我正在添加新行(第10行)。我正在检查用户是否在我之后使用该数据之前将任何列留空,现在如果用户在第1列中插入了某些内容,并且第2列留空了我检查它并显示消息“第2列不能为空”,但之后我希望他的选择(currentrow)在那个空单元格我的问题是新行没有索引(它有,但当我使用它,我得到错误,我不能使用大于最大的索引行)。我该怎么解决呢。

以下是我正在检查

的代码部分
            int nRows = dataGridView1.Rows.Count;
            int currColumn = dataGridView1.CurrentCell.ColumnIndex;
            int currRow = dataGridView1.CurrentCell.RowIndex;
            string id = dataGridView1.Rows[currRow].Cells[0].Value.ToString();
            string opis = dataGridView1.Rows[currRow].Cells[1].Value.ToString();

            if (string.IsNullOrEmpty(id))
            {
                MessageBox.Show("Polje broj ne moze biti prazno!");
                dataGridView1.CurrentCell = dataGridView1[0, nRows];
            }
            else if (string.IsNullOrEmpty(opis))
            {
                MessageBox.Show("Polje opis ne moze biti prazno!");
                dataGridView1.CurrentCell = dataGridView1[1, nRows];
            }

1 个答案:

答案 0 :(得分:0)

一个选项可能是订阅DataGridView

RowsAdded事件
dataGridView.RowsAdded += dataGridView1_RowsAdded


private void dataGridView1_RowsAdded(object sender,
     DataGridViewRowsAddedEventArgs e)
{
    // validation code.
    e.RowIndex; // newly added row index.
}