none
Al heredar un control DataGridView no puedo sobreescribir el evento CellPainting RRS feed

  • Pregunta

  • Buenos días.

    Estoy creando un nuevo componente derivado de DataGridView.

    Quisiera sobreescribir el evento CellPainting, pero me da error. Al intriducir el código:

    	Protected Overrides Sub OnCellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs)
    		Me.OnCellPainting(sender, e)
    	End Sub
    

    me muestra el aviso:

        sub 'OnCellPainting' no se puede declarar 'Overrides' porque no invalida sub en una clase base.

    ¿Cómo puedo sobreescribir dicho evento?

    Gracias.

    martes, 2 de octubre de 2018 10:59

Respuestas

  • En la herencia de eventos creo que no hace falta.

    Por ejemplo tengo este código en el mismo control y no da error:

    	Protected Overrides Sub OnEnter(e As EventArgs)
    		Me.DefaultCellStyle.SelectionBackColor = SelectionRowFocusBackColor
    		Me.DefaultCellStyle.SelectionForeColor = SelectionRowFocusForeColor
    		MyBase.OnEnter(e)
    	End Sub

    Además, acabo de probar en pobe ByVal o ByRef en el evento OnCellPainting y me da el mismo error:

        sub 'OnCellPainting' no se puede declarar 'Overrides' porque no invalida sub en una clase base.

    Saludos.


    Gracias. Francisco Lorente.

    • Propuesto como respuesta Pablo Rubio miércoles, 3 de octubre de 2018 15:41
    • Marcado como respuesta Pablo Rubio lunes, 8 de octubre de 2018 14:34
    martes, 2 de octubre de 2018 18:14

Todas las respuestas

  • Corrige la declaración:

    Protected Overrides Sub OnCellPainting(ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs)

    Saludos

    • Propuesto como respuesta Pablo Rubio martes, 2 de octubre de 2018 15:30
    martes, 2 de octubre de 2018 11:18
  • En la herencia de eventos creo que no hace falta.

    Por ejemplo tengo este código en el mismo control y no da error:

    	Protected Overrides Sub OnEnter(e As EventArgs)
    		Me.DefaultCellStyle.SelectionBackColor = SelectionRowFocusBackColor
    		Me.DefaultCellStyle.SelectionForeColor = SelectionRowFocusForeColor
    		MyBase.OnEnter(e)
    	End Sub

    Además, acabo de probar en pobe ByVal o ByRef en el evento OnCellPainting y me da el mismo error:

        sub 'OnCellPainting' no se puede declarar 'Overrides' porque no invalida sub en una clase base.

    Saludos.


    Gracias. Francisco Lorente.

    • Propuesto como respuesta Pablo Rubio miércoles, 3 de octubre de 2018 15:41
    • Marcado como respuesta Pablo Rubio lunes, 8 de octubre de 2018 14:34
    martes, 2 de octubre de 2018 18:14