Duvida com DataGridView em Form C#

Bom dia,Galera sou novo com C# e no forum .É o seguinte tenho um Form na minha aplicação que contem uma Table Control com 8 Table page que nessas Tablepages contem 8 DataGridViews. No meu código eu tenho uma função que passa por parâmetro sempre as DataGridView.Essa função tem a funcionalidade de olhar um determinado campo se valor é X uma determinada celula deve ficar enabled(deixa a cor da celula norma) e ao clicar nesta celula não deve acontecer nada caso não seja essa celular deve fica ficar disabled(cor mas escura) e ao clica nesta celula um evento é disparado. O problema é o seguinte A função funciona perfeitamente na primeira DataGridView porem nas DataGridView seguintes ela apenas funciona a parte de disparar o evento,porem a mudança da celula de cor ela não muda.

Imagem do Tabela
Tabela Correta

Tabela incorreta

Codigo da Função:

[code]
private void habilitaClickExcelCheckBox(DataGridView dgv)
{
DataGridViewCellStyle style = new DataGridViewCellStyle();
style.ForeColor = Color.DarkGray;
style.BackColor = Color.LightGray;
DataTable dt = (DataTable)dgv.DataSource;
foreach (DataGridViewRow linha in dgv.Rows)
{
Image imgExecute = (Image)dgv[2, linha.Index].Value;
if (“EXECUTAR”.Equals(imgExecute.Tag))
{

             linha.Cells[3].ReadOnly = true;
             linha.Cells[3].Style = style;
      }

 } 

}[/code]