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

时间:2018-04-04 04:09:33

标签: c# winforms datagridview

我正在使用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只是一个检查放置在标记内的特定文本的扩展方法。

1 个答案:

答案 0 :(得分:2)

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

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

例如,如果点击了列标题,则e.ColumnIndex将报告列的索引,e.RowIndex将为-1。与行标题相反。

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