如果只对DataGridView中的Cell而不是Header进行双击时如何运行代码?

时间:2012-07-02 12:05:15

标签: c# winforms datagridview

private void dgv_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
foreach (DataGridViewRow r in dgv.Rows) r.Visible = false;
}

此代码有效,但如果ColumnHeaders(不仅是单元格)被双击,也可以使用吗? 我想在双击单元格时运行它 CellDoubleClick应该是CellDoubleClick而不是HeaderDoubleClick。

4 个答案:

答案 0 :(得分:21)

private void dgv_CellDoubleClick(object sender, DataGridViewCellEventArgs e) {
            if (e.RowIndex != -1) {
                //do work
            }
        }

答案 1 :(得分:3)

您可以检查e.RowIndex是否为-1,这意味着事件发生在标题行上。

答案 2 :(得分:2)

您可以使用DataGridViewCellEventArgs.RowIndex检查是否单击了标题,或者是否单击了行中的任何单元格。

答案 3 :(得分:1)

不是最干净的方法,但你可以像这样做到

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
    if (((System.Windows.Forms.DataGridView)(sender)).CurrentCell != null)
    {
       //Do what you want here................
    }
}