none
Mostrar imagen en datagridviewimagecolumn RRS feed

  • Pregunta

  • Buenos días.

    Tengo problemas a la hora de mostrar imagenes en una columna datagridviewimagecolum, recorro la una columna y según ese valor le asigno a la columna datagridviewimagecolumn. El tema es que el grid lo tengo en un formulario que lo llamo desde otro formulario, cuando llamo por primera vez al formulario del grid, me muesta una cruz roja en la columna, pero si le doy doble click, en el grid actualizo de nuevo el grid y entonces si me muestra las imagenes. el problema creo que es por la llamada desde otro formulario, porque realmente las imagenes las coge bien, pero de repente se le pone la cruz en la rpimera llamada, es un poco dificil de explicar a ver si alguien puede ayudarme, he intentado hacer de mil formas refresh, update resumelayout y esas cosas pero nada no me actualiza la imagen.

    Este es el codigo para cargar el grid: Lo uso en el from_load del formulario con el grid, asta aquí las imagenes se ven correctamente 

     

        Private Sub cargar_datos()
            Try
                Me.PanelPreTableAdapter.Fill(Me.lopedbDataSet.PanelPre)
                For Each item As DataGridViewRow In GridPresupuestos.Rows
                    Select Case item.Cells("ESTADO").Value
                        Case "ESPERA"
                            item.Cells("IESTADO").Value = Global.Lopetegi.My.Resources.Resources.Espera
                        Case "RECHAZADO"
                            item.Cells("IESTADO").Value = Global.Lopetegi.My.Resources.Resources.Rechazado
                        Case "ACEPTADO"
                            item.Cells("IESTADO").Value = Global.Lopetegi.My.Resources.Resources.Aceptado
                        Case "GENERADO"
                            item.Cells("IESTADO").Value = Global.Lopetegi.My.Resources.Resources.Generado
                        Case Else
                            item.Cells("IESTADO").Value = Global.Lopetegi.My.Resources.Resources.Espera
                    End Select
                Next
            Catch ex As Exception
                System.Windows.Forms.MessageBox.Show(ex.Message)
            End Try
        End Sub

    A este formulario lo llamo desde otro formulario de esta forma, es aquí donde las imagenes desaparecen y se pone la cruz roja, pero no salta ningún error

    Panel es el formulario donde tengo el grid.

        Private Sub crearPanel(ByRef Panel As Control, ByRef separador As ToolStripSeparator, ByRef etiqueta As ToolStripButton, ByVal nomEti As String, ByVal nombre As String, ByVal texto As String)
            toolVentanas.Visible = True
    
            Panel.SuspendLayout()
            Me.SplitGeneral.Panel2.Controls.Add(Panel)
            tablaPaneles.Add(Panel)
            'ToolStripSeparador
            '
            separador.Size = New System.Drawing.Size(6, 25)
    
            'toolEtiqueta
            etiqueta.Image = Global.Lopetegi.My.Resources.Resources.Cancela
            etiqueta.ImageAlign = System.Drawing.ContentAlignment.MiddleRight
            etiqueta.TextAlign = ContentAlignment.MiddleCenter
            etiqueta.TextImageRelation = Windows.Forms.TextImageRelation.TextBeforeImage
            etiqueta.Name = nomEti
            etiqueta.Text = nomEti
            etiqueta.AutoSize = False
            etiqueta.Width = etiqueta.Text.Length * 6 + 25
            etiqueta.DisplayStyle = ToolStripItemDisplayStyle.Text
    
    
            Me.toolVentanas.Items.AddRange(New System.Windows.Forms.ToolStripItem() {etiqueta, separador})
            PanelActivo = toolVentanas.Items.Count / 2
            chekear_tool()
            organizarPaneles()
    
            Panel.Dock = System.Windows.Forms.DockStyle.Top
            Panel.Location = New System.Drawing.Point(0, 0)
            Panel.Name = nombre
            Panel.ResumeLayout()
        End Sub
    
            Me.toolVentanas.Items.AddRange(New System.Windows.Forms.ToolStripItem() {etiqueta, separador})
            PanelActivo = toolVentanas.Items.Count / 2
            chekear_tool()
            organizarPaneles()
    
            Panel.Dock = System.Windows.Forms.DockStyle.Top
            Panel.Location = New System.Drawing.Point(0, 0)
            Panel.Name = nombre
            Panel.ResumeLayout()
        End Sub
    ¿Alguno puede ayudarme?
    • Cambiado Enrique M. Montejo sábado, 7 de abril de 2012 18:03 Controles de Windows Forms (De:Lenguaje VB.NET)
    martes, 14 de febrero de 2012 11:23

Todas las respuestas

  • la forma de agregar una imagen a una celda es la siguiente.

    Dim Img As New Image

    ' cargas la direccion de la imagen

    datagridview1.Rows(fila).cells(columna).Controls.addt(0,img)

    Saludos.

    • Propuesto como respuesta ARthemiaz jueves, 12 de abril de 2012 19:26
    jueves, 1 de marzo de 2012 18:27