Imagelist debe inicializarse para poder usarla

Tengo un drama, mi aplicación tengo un form que cuando apretó un botón me abre otro form2 que este contiene una treeview. Lo que quiero es que cuando apretó el botón en el form 1 me habrá el 2 con la treevie ya cargado con los datos que necesito que en este caso es empresas y empleados.
Pero me salta un error como puse en el titulo y no sigue y me tranca.
Si podrían ayudarme les agradecería.
Código:
Public Sub ActualizarMTView()
    TreeView1. Nodes. Clear
Aca no pasa salta el error de imaglist debe inicializarse
    Set NodoV = TreeView1.Nodes.Add(, , "E", "Empresas", "Empresas")
    If MiRecordset4.EOF = True And MiRecordset4.BOF = True Then
        Exit Sub
    End If
    MiRecordset4.MoveFirst
    Do While Not MiRecordset4.EOF
                Empresa = MiRecordset4!Empr_nombre
                If Empresa <> "" Then
                Empresa_id = "E" & MiRecordset4!Empr_id
                Set NodoV = TreeView1.Nodes.Add("E", tvwChild, Empresa_id, Empresa, "Empresa")
                End If
                MiRecordset4.MoveNext
    Loop
    MiRecordset4.MoveFirst
If MiRecordset3.EOF = True And MiRecordset3.BOF = True Then
        NodoV.EnsureVisible
        Exit Sub
    Else
        If MiRecordset.EOF = True And MiRecordset.BOF = True Then
            GoTo ContinuaMT
        Else
        me.posicionoempleados
        End If
ContinuaMT:
        For i = 0 To Empleados
                Do While Not MiRecordset3.EOF
                    If MiRecordset3!Vehi_id = Empleados(E) Then
                    EmpleadosT = MiRecordset3!Emp_textid
                    EmpleadosID = "M" & MiRecordset3!Emp_id
                    EmpleadosE = "E" & MiRecordset3!Emp_Empr_id
                    Set NodoV = TreeView1.Nodes.Add(EmpleadosE, tvwChild, EmpleadosID, EmpleadosT, "Nombre")
                    End If
                    MiRecordset3.MoveNext
                Loop
                E = E + 1
        MiRecordset3.MoveFirst
        Next
        NodoV.EnsureVisible
    End If
End Sub
En un momento me funciono pero no se después me salta ese error y no me doy cuenta, tengo otra treeview en otro form y funciona perfecto pero no se porque acá no puedo.

2 respuestas

Respuesta
1
En el form que tenga el TView debes tener un imagelist con las imágenes cargadas en tiempo de diseño. Comprueba que está si no te saltará el error.
Si la tienes en el form y cargadas entonces es algo raro, lo mismo has cruzado una referencia
Gracias por responder pero entiendo pero no se como hago para cargar las imágenes al imagelist gracias.
Con VB en modo diseño, pulsa con el botón derecho y accede a la ventana de propiedades de la imgList.
Veras botones para ir cargando las imágenes y asociándolas a un indice numérico ( 1, 2, 3, etc..)
Este número es el que debes usar después en el treeView,
busca en vbcode.com ejemplos de uso, hay varios.
Ok entiendo pero coloco esto y me da el mismo error. Y en un ejemplo que baje de la página que me pasaste que esta bueno no lo tiene y no se como hacerlo.
Dim nodov As Node
     TreeView1.ImageList = ImageList3
    Acá me dice esto: image list debe inicializarse antes de poder usarla y no me pasa a la sentencia siguiente set nodov...
     Set nodov = TreeView1.Nodes.Add(, , "E", "Empresas", "Empresas")
Este ejemplo de abajo es el que baje de la página vb con el ejemplo y funciona bien y no tiene mucha diferencia con lo de arriba que es de mi aplicación y me salta ese error.
TreeView1.ImageList = ImageList1
   Dim nodX As Node  ' Create variable.
   Set nodX = TreeView1.Nodes.Add(, , "M1", "Buyers", 1)
Si pueden ayudarme les agradecería gracias.
Vale..
¿Pero has cargado dos o tres imágenes en el imglist para inicializarlo? Si no lo has hecho en modo diseño puedes hacerlo por código con una procedimiento como el de abajo, piensa que si el Imglist no tiene imágenes tampoco puede visualizarlas.
Private Sub InicializaImgList()
    ImageList1. ListImages.Add , , LoadPicture("C:\ejemplo\ejemplo1.ico") ' Imagen 1
    ImageList1. ListImages.Add , , LoadPicture("C:\ejemplo\ejemplo2.ico") ' La 2
    ImageList1.ListImages.Add , , LoadPicture("C:\ejemplo\ejemplo3.ico")
    ImageList1.ListImages.Add , , LoadPicture("C:\ejemplo\ejemplo4.ico") ' La 4
End Sub
Recuerda que solo puedes cargar archivos de tipo icono.
Ademas cuidado con el nodes. Add a la imagen te debes referir como un numero ( el 1, 2, 3, 4) según el orden en el que estén cargadas si no te dará error.
¿Con qué versión de commoncontrols estás trabajando?
Respuesta

Para cualquiera que tenga este problema la solución es simplemente seguir lo siguiente:

.-Añade el imagelist a el formulario con el listview con el que quieres interactuar

.-Luego, asegurate que el imagelist tenga las imágenes en la pestaña "imagenes" en propiedades

.-Entra en las propiedades del listview con click derecho > propiedades y ve a la pestaña Lista de imágenes

.-Al estar ahí debes marcar todas las opciones con el nombre del imagelist

Y listo, eso debería funcionar, si con esto no te funciona ten en cuenta las dimensiones de las imágenes para no tener problemas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas