繁体   English   中英

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

[英]How to run a code only if a Cell, not a Header, in DataGridView is doubleClicked?

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM