隐藏datagridview列但仍然可以访问它的值

时间:2016-11-27 06:15:00

标签: c# winforms datagridview

以下代码使用的是我希望不可见的列,即[0]

LoadData();
MessageBox.Show(p.AddNew());
dgpay.DataSource = p.AllData();
p.Move2Last();
ShowData();
for (int i = 0; i < dgpay.Rows.Count; i++)
{
    if (!dgpay.Rows[i].IsNewRow)
    {
        if (dgpay[0, i].Value.ToString() == txtpaymentid.Text)
        {
            dgpay.CurrentCell = dgpay.Rows[i].Cells[0];
            dgpay.Rows[i].Selected = true;
        }
        else
        {
            dgpay.Rows[i].Selected = false;
        }
    }
}

当我试图制作dgpay.Columns[0].Visible = false时,上述代码可能不会运行。

如何在不影响代码的情况下隐藏列。

1 个答案:

答案 0 :(得分:1)

您隐藏了第一列,但之后您尝试将当前单元格设置为第一列的单元格。当您将当前单元格设置为不可见单元格时,您将收到InvalidOperationException

  

当前单元格不能设置为不可见单元格。

只需使用可见列索引设置当前单元格,例如:

dgpay.CurrentCell = dgpay.Rows[i].Cells[1]; // I supposed Columns[1].Visible is true