C# 隐藏datagridview列,但仍访问其值

C# 隐藏datagridview列,但仍访问其值,c#,winforms,datagridview,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() ==

下面的代码使用了我希望不可见的列[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;
        }
    }
}
LoadData();
Show(p.AddNew());
dgpay.DataSource=p.AllData();
p、 Move2Last();
ShowData();
对于(int i=0;i
当我试图使
dgpay.Columns[0].Visible=false时,上述代码可能无法运行


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

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

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

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

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

你的目标是什么?隐藏第一列,但试图将当前单元格设置为第一列的单元格。列已修复或正在运行时创建?是,Reza AghaeiKishan Sojitra在运行时创建