none
Overridable y Overrides RRS feed

  • Pregunta

  • Hola de nuevo, el problema en que me encuentro es el siguiente:
    Tengo un formulario base en el cual he puesto los botones para poder
    navegar por los registros.

    Public Class Frm_Base
        Public Overridable Sub btnSiguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSiguiente.Click
            AsignarDatos = False
            If IrRegistro(Siguiente) = True Then
                AsignarDatos = True
            End If
        End Sub
    End Sub

    En otro formulario heredado he puesto el siguiente codigo:

    Public Class FrmMtMaquinas
        Public Overrides Sub btnSiguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSiguiente.Click
            MyBase.btnSiguiente_Click(sender, e)
            If AsignarDatos = True Then
                AsignarDatos_aControles(SQL)
            End If
        End Sub
    End Sub

    pues bien el problema que me ha surgido, es que el procedimiento "Public Overrides Sub btnSiguiente_Click" me lo repite dos veces por lo que los registros los visualiza de dos en dos.
    ¿Alquien puede saber a que es debido?

    martes, 17 de julio de 2012 14:50

Respuestas

  • en los evento no aplica lo del sobreescribir evento

    lo que haces es

    Public Class Frm_Base
    
        Public Overridable Sub btnSiguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSiguiente.Click
    		SiguienteClick()
        End Sub
    	
    	Public Overridable Sub SiguienteClick
    		AsignarDatos = False
    		If IrRegistro(Siguiente) = True Then
    			AsignarDatos = True
    		End If
    	End Sub
    
    End Sub
    
    
    
    Public Class FrmMtMaquinas Inherits Frm_Base
    
    	Public Overrides Sub SiguienteClick
                If AsignarDatos = True Then
                  AsignarDatos_aControles(SQL)
                End If
    	End Sub
    
    End Sub

    o sea aplcias la funcionalidad en metodo, no en el metodo del evento

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP martes, 17 de julio de 2012 16:53
    • Marcado como respuesta ribe61 martes, 17 de julio de 2012 21:09
    martes, 17 de julio de 2012 16:52

Todas las respuestas

  • en los evento no aplica lo del sobreescribir evento

    lo que haces es

    Public Class Frm_Base
    
        Public Overridable Sub btnSiguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSiguiente.Click
    		SiguienteClick()
        End Sub
    	
    	Public Overridable Sub SiguienteClick
    		AsignarDatos = False
    		If IrRegistro(Siguiente) = True Then
    			AsignarDatos = True
    		End If
    	End Sub
    
    End Sub
    
    
    
    Public Class FrmMtMaquinas Inherits Frm_Base
    
    	Public Overrides Sub SiguienteClick
                If AsignarDatos = True Then
                  AsignarDatos_aControles(SQL)
                End If
    	End Sub
    
    End Sub

    o sea aplcias la funcionalidad en metodo, no en el metodo del evento

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP martes, 17 de julio de 2012 16:53
    • Marcado como respuesta ribe61 martes, 17 de julio de 2012 21:09
    martes, 17 de julio de 2012 16:52
  • Gracias Leandro, tu respuesta me ha sido de mucha utilidad (por lo tanto ya he aprendido algo mas del vb).

    En lo que se refiere al FrmMtMaquinas funciona añadiendo "MyBase.btnSiguienteClick()" es decir el codigo queda de la siguiente manera:

    Public Overrides Sub btnSiguienteClick()
       MyBase.btnSiguienteClick()
       If AsignarDatos = True Then
           AsignarDatos_aControles(SQL)
       End If
    End Sub
    en lo que se refiere al "Inherits Frm_Base" no me lo admite porque en el FrmMtMaquinas.designer.vb ya tengo puesto el Inherits FrmRb10_Base

    Saludo.

    dfsd

    martes, 17 de julio de 2012 21:09