VS2008 C# Ocultar la primera fila de un DataGridView ( solución para cuando no se deja )

Pues bien, otro error con los controles autogenerados, resulta que a veces según la alineación de los planetas cuando agregas un DataGridView desde la pestaña de Data Sources y luego pones la primera columna que suele ser la del ID en visible=false; en el diseñador se te ve oculta pero en tiempo de ejecución no.

Ésto es porque el mismo se raya y hace la asignación de la propiedad cuando no debe (la hace antes de asignar el Data Binding, y claro al asignarlo después pues vuelve a aparecer la columna), la solución a ésto es controlar el evento BindingContextChanged del DataGridView en cuestión y añadirle dentro la instrucción para ocultar la columna, ejemplo:


clienteDataGridView.Columns[0].Visible = false;

Comentarios

Alfredo ha dicho que…
En el titulo decías ocultar la primera fila, pero en realidad parece ser que era la primera columna, yo tengo el problema con la fila 0, cuando intento recorer el datagridview y pongo el visible = false me lo permite hacer con tas las filas menos la primera, dando un error:

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

Alguien sabe a que se puede deber.

Antes de hacer nada compruebo que haya filas con datos y en mi caso tengo media docena.

Muchas gracias de antemano
Javier Marchetti ha dicho que…
uf que me dió un poco de dolor de cabeza ese mismo problema de

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

yo lo solucioné de la sig manera
dataGridView1.CurrentCell = null;
y listo ya puedes asignar "false" a la propiedad visible

dataGridView1.Rows[i].Visible = true;
Pablo ha dicho que…
Buenisimo, me soluciono el problema
Anónimo ha dicho que…
2 años después y aún salvando vidas. Gracias :D
Néstor ha dicho que…
3 años después y ayudando!! ;)
Anónimo ha dicho que…
2014 y sigue ayudando. Gracias.
forlayo ha dicho que…
Me alegro muchísimo de que os haya ayudado; voy a intentar añadir mas actualizaciones de lo que estoy haciendo actualmente.
Unknown ha dicho que…
hola, me gustaria que alguien me pudiera ayudar, tengo un problema para ocultar las filas de un data gridview.
el metodo que uso para cargarlo es el siguiente (sin incluir la conexion y la consulta claro:
MySqlCommand codigo = new MySqlCommand();

codigo.Connection = conexion;
codigo.CommandText = (string.Format("XXXXXXXXXXX"));
try
{
MySqlDataAdapter seleccionar = new MySqlDataAdapter();
seleccionar.SelectCommand = codigo;
DataTable datostabla = new DataTable();
seleccionar.Fill(datostabla);
BindingSource formulario = new BindingSource();
formulario.DataSource = datostabla;
dgv.DataSource = formulario;
seleccionar.Update(datostabla);

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);

}

despues en un formulario quiero ocultar las filas asi:

dgv_financiaciones.CurrentCell = null;
if (filtro.Text != "")
{
foreach (DataGridViewRow r in dgv_financiaciones.Rows)
{

CurrencyManager cm = (CurrencyManager)BindingContext[dgv_financiaciones.DataSource];
cm.SuspendBinding();

r.Visible = false;
}
}
y me dice System.InvalidOperationException: 'La nueva celda sin confirmar no se puede hacer invisible
Anónimo ha dicho que…
Nueve años despues y sigues siendo un heroe, gracias por la ayuda

Entradas populares de este blog

El juego del impávido.

HowTo Cambiar campo "Archivar como" para que se asemejer a "Nombre completo"

VS2008 C# Centrar un formulario en pantalla.