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:
É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
"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
"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;
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