Muchas veces necesitamos ocultar no sólo una columna, sino una fila entera de un DataGridView, el problema es que si le aplicásemos el código que primero se nos viene a la cabeza:

 this.Datagridview1.Rows[numeroFila].visible = false;

obtendríamos con facilidad el siguiente error en el momento de la ejecución:

«La fila asociada con la posición del administrador de moneda no se puede hacer invisible.»

Para resolver este inconveniente, sólo basta con agregar una línea de código justo antes de la anterior:

this.Datagridview1.CurrentCell = null;

Quedándonos algo así:


this.Datagridview1.CurrentCell = null;
this.Datagridview1.Rows[numeroFila].Visible = false;

Si lo que se quiere es seleccionar una fila y luego ocultarla:


public void button1_Click(object sender, EventArgs e)
 {
int fila = this.Datagridview1.CurrentRow.Index;

this.Datagridview1.CurrentCell = null;

this.Datagridview1.Rows[fila].Visible = false;
}

Obviamente si al momento de ejecutarlo no se seleccionó ningún valor se podría obtener algo como:

«No se controló NullReferenceException»

Para lo que no estaría mal preguntar primero si hay un valor seleccionado:


if (this.Datagridview1.CurrentRow != null) //Averiguar si se seleccionó un campo en el Datagridview
{
// Escribir el código anterior

int fila = this.Datagridview1.CurrentRow.Index;

this.Datagridview1.CurrentCell = null;

this.Datagridview1.Rows[fila].Visible = false;
}