Error System.NullReferenceException en DataGridView
Publicado por Victor (5 intervenciones) el 24/01/2018 01:07:21
Hola a tod@s,
Estoy empezando a programar en VB.NET, utilizando el Visual Studio 2017.
Tengo un formulario con un TabControl, que tiene dos pestañas con un DataGridView (DGV) cada una. Ambos DataGridView son iguales y cargan la misma información (configuré el primer DGV e hice un Copy Paste para el segundo, con lo que la configuración es la misma para ambos). Cuando cargo el formulario, relleno el DGV de la primera pestaña en el evento Load del Form (mediante el DataSource), y también formateo las columnas (nombre del HeaderText y ancho de las columnas). Por código, cuando selecciono la segunda pestaña (evento TabControl.Selected), cargo de la misma manera el segundo DGV y formateo también de la misma manera (mismo código) el segundo DGV. No obstante, cuando voy a ajustar el ancho de la primera columna me salta el error "System.NullReferenceException: Referencia a objeto no establecidad como instancia de un objeto."... El error indica que el objeto es nulo, pero es un control que tengo en el formulario, y antes de ajustar el ancho de las columnas oculto varias de las mismas que no quiero que se vean, y también asigno el nombre de las cabeceras de las columnas. El código es el mismo que usa el DGV de la primera pestaña pero con esa funciona perfectamente. Llevo varios días devanándome los sesos mirando por internet pero no consigo encontrar el origen del error...
Este es el procedimiento que formatea el DGV:
He pensado que pudiera ser un problema del evento del TabControl que uso para cargar los datos del DGV (TabControl.Selected), que todavía no lo tiene disponible para mostrar y por eso no puede ajustar el ancho
no sé, agradecería ideas de dónde puede estar el problema....
Muchas gracias de antemano.
Víctor
Estoy empezando a programar en VB.NET, utilizando el Visual Studio 2017.
Tengo un formulario con un TabControl, que tiene dos pestañas con un DataGridView (DGV) cada una. Ambos DataGridView son iguales y cargan la misma información (configuré el primer DGV e hice un Copy Paste para el segundo, con lo que la configuración es la misma para ambos). Cuando cargo el formulario, relleno el DGV de la primera pestaña en el evento Load del Form (mediante el DataSource), y también formateo las columnas (nombre del HeaderText y ancho de las columnas). Por código, cuando selecciono la segunda pestaña (evento TabControl.Selected), cargo de la misma manera el segundo DGV y formateo también de la misma manera (mismo código) el segundo DGV. No obstante, cuando voy a ajustar el ancho de la primera columna me salta el error "System.NullReferenceException: Referencia a objeto no establecidad como instancia de un objeto."... El error indica que el objeto es nulo, pero es un control que tengo en el formulario, y antes de ajustar el ancho de las columnas oculto varias de las mismas que no quiero que se vean, y también asigno el nombre de las cabeceras de las columnas. El código es el mismo que usa el DGV de la primera pestaña pero con esa funciona perfectamente. Llevo varios días devanándome los sesos mirando por internet pero no consigo encontrar el origen del error...
Este es el procedimiento que formatea el DGV:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Public Sub LlenarYFormatearTitulosGridView(GridView As DataGridView)
With GridView
'Ocultamos las columnas con información no relevante
.Columns(0).Visible = False
.Columns(8).Visible = False
.Columns(9).Visible = False
.Columns(10).Visible = False
.Columns(11).Visible = False
.Columns(12).Visible = False
.Columns(13).Visible = False
.Columns(1).HeaderText = "Fecha entrada"
.Columns(1).Width = 70 '<-- El error me lo da en esta línea
.Columns(2).HeaderText = "Cantidad"
.Columns(2).Width = 50
.Columns(3).HeaderText = "P/N"
.Columns(3).Width = 65
.Columns(4).HeaderText = "Descripción"
.Columns(4).Width = 230
.Columns(5).HeaderText = "¿Es repuesto?"
.Columns(5).Width = 55
.Columns(6).HeaderText = "Equipo al que pertenece"
.Columns(6).Width = 78
.Columns(7).HeaderText = "Fabricante"
End With
End Sub
He pensado que pudiera ser un problema del evento del TabControl que uso para cargar los datos del DGV (TabControl.Selected), que todavía no lo tiene disponible para mostrar y por eso no puede ajustar el ancho

Muchas gracias de antemano.
Víctor
Valora esta pregunta


0