C# DataGridView行标题单击给出最后选定的列索引

C# DataGridView行标题单击给出最后选定的列索引,c#,winforms,datagridview,C#,Winforms,Datagridview,我使用CellClick事件来单击行和列 现在,当单击行标题时,它将为我提供最后一列选定的索引 这将为我创建一个问题,因为我需要对当前选定的行和列执行操作。我如何处理这个问题?我看到了大量的帮助,但所有这些都是关于列标题单击的 下面是我在单击单元格时检查行和列索引的基本测试 private void dgvUsers_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvUsers.CurrentRo

我使用CellClick事件来单击行和列

现在,当单击行标题时,它将为我提供最后一列选定的索引

这将为我创建一个问题,因为我需要对当前选定的行和列执行操作。我如何处理这个问题?我看到了大量的帮助,但所有这些都是关于列标题单击的

下面是我在单击单元格时检查行和列索引的基本测试

private void dgvUsers_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (dgvUsers.CurrentRow == null || dgvUsers.IsLoading()) return;

        var row = dgvUsers.CurrentCell.RowIndex; //CurrentRow.Index;
        var col = dgvUsers.CurrentCell.ColumnIndex;
        var ugactive = _ugActive;
    }

在上面的代码中,IsLoading只是一个扩展方法,用于检查放置在标记内的特定文本

DataGrdView
CellClick()
事件中,可以通过检查
DataGridViewCellEventArgs e
参数来确定当前单击的单元格,其中
e.RowIndex
e.ColumnIndex
值报告单击的单元格列和行的引用索引

这也适用于列和行标题。在这种情况下,报告的值为负值(-1)。

例如,如果单击列标题,
e.ColumnIndex
将报告该列的索引,而
e.RowIndex
将为
-1
。行标题的反面。

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    //(...)
    var row = e.RowIndex;
    var col = e.ColumnIndex;
    //(...)
}

为什么不使用
DataGridViewCellEventArgs e
值?单击行标题时,
e.ColumnIndex=-1
这样一个简单的解决方案,找不到。。。这是我第二天做这个控制。请把你的评论作为回答,以便我能接受。谢谢