C# C DataGridView获取所选行号异常

C# C DataGridView获取所选行号异常,c#,datagridview,C#,Datagridview,我正在尝试获取datagridview中当前选中的行的inside和int,但是我在这个网站上找到的所有示例,它总是给我索引超出界限的错误,所以我使用if语句检查是否有任何选中的行,但它只返回我-1,无论我选择什么,我不明白为什么它对我不起作用 private void mainTableDataGridView_SelectionChanged(object sender, EventArgs e) { int index = -1; if (m

我正在尝试获取datagridview中当前选中的行的inside和int,但是我在这个网站上找到的所有示例,它总是给我索引超出界限的错误,所以我使用if语句检查是否有任何选中的行,但它只返回我-1,无论我选择什么,我不明白为什么它对我不起作用

    private void mainTableDataGridView_SelectionChanged(object sender, EventArgs e)
    {
        int index = -1;
        if (mainTableDataGridView.SelectedRows.Count > 0)
        {
            index = mainTableDataGridView.SelectedRows[0].Index;
        }
        textBox1.Text = Convert.ToString(index);
    }
试试这个:

    Int32 selectedRowCount = mainTableDataGridView.Rows.GetRowCount(DataGridViewElementStates.Selected);
    if (selectedRowCount > 0)
    {
        index = mainTableDataGridView.SelectedRows[0].Index.ToString();
    }
    textBox1.Text = index;

为什么要将int index指定为-1?代码有什么问题?它工作正常。在gridview中加载数据时应该有错误。他想要的是行而不是SelectedCell
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
   this.Text = dataGridView1.SelectedCells[0].RowIndex.ToString();
}