I have a datagridview and a status strip on my form. When I click a row or cell, the label from the status strip should change according to it's row number. My datagridview is being generated at run time by a dataset.

Many Click events of the DataGrridView show a DataGridViewCellEventArgs

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            // e.RowIndex and e.ColumnIndex
        }

This class gives you access to the row and column.

commented: thanks +1
commented: You are welcome :) +2

I will only add to ddanbe` post:
If you are not in some dgv`s event handler you get the row number like:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int rowIndex1 = e.RowIndex;
            int rowIndex2 = GetRowIndex();
        }

        private int GetRowIndex()
        {
            int rowIndex = this.dataGridView1.CurrentCell.RowIndex;
            return rowIndex;
        }

Mitja

commented: Thanks for the addition! +8

It begins with 0 for the first row, so does that mean I just need to add 1?

Depends on what your intentions are, as long as you know what you are doing, please add 1. No problem.

There's an error if I click an empty datagridview. I suppose I need to set a condition for this? Like if datagridview is not null?

I need to indicate the row is 0, so I think an if else condition is necessary, don't you think? But using condition just to tell the row is 0? Isn't the code supposed to do that?

Yes you do:

if(dataGridView1.Rows.Count > 0)
{
   //your code
}
commented: thanks +1