none
Como mandar un valor de una instancia de formulario a su clase formulario base? RRS feed

  • Pregunta

  • Hola 

    Tengo tengo una clase botonesbasicos("buscar,editar,nuevo, etc") tengo otra clase botonesnavegacion(<<,<,>,>>), que he puesto en una clase nueva formulario frmTabla (primera imagen)

    He creado una instancia de frmTabla llamada frmProductos, quiero ver la manera de cuando presione el boton, ">"(sge registro) tome el dataset que cargue en Load de frmProductos, mi pregunta es

    Como hago para que el evento click de ">" (botonesnavegacion1_LMOEVentHandler_Botonsigui  en frmTabla) sepa el dataset donde cargue los registros?  a continuacion el codigo de la instancia de frmTabla llamada 1)frmProductos y 2)el codigo de frmTabla y 3)el codigo de  botonesnavegacion

    Gracias por la respuesta

    Imports AccesoDatos
    Imports CapaEntidades
    Imports CapaFlujoNegocio
    
    
    
    Public Class frmProducto
        ' Private objProducto As New ProductoFN
    
    #Region "Variables usadas en Load"
        'Private frmregistros As New DataSet ' guarda registros de cliente enviados por la funcion de IMAIR
        Public frmregistros As New DataSet
    
        Private fila As New Integer ' inicializa en 0 para la carga de de registros
    #End Region
    
        Private Sub fmEmpleado_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            'frmregistros = New DataSet
            'frmregistros = Clien.Clientes_cargar()
            'fila = 0
            Dim lmob = True
            'cargaclientes(fila)
            frmregistros = New DataSet
            frmregistros = ProductoFN.GetAll(lmob)
            fila = 0
            cargaproductos(fila)
    
            MsgBox("load de frmProductos")
    
            Call Recibevariables(frmregistros)
            MsgBox("regreso de recibe variables" & frmregistros.DataSetName)
        End Sub
    
    
        Public Sub cargaproductos(ByVal Fila As Integer)
            With (frmregistros.Tables(0).Rows(Fila))
    
                txtProductID.Text = .Item(0).ToString
                txtProductName.Text = .Item(1)
                txtQuantityPerUnit.Text = .Item(5).ToString
                txtUnitPrice.Text = .Item(6).ToString
    
            End With
    
        End Sub
    
    
    End Class
    'LMOEVentHandler_Botonsigui(sender, e)
    
    'Public Delegate Sub botonsiguiManejadorEventosA(ByVal sender As Object, ByVal e As tabladatasetEventArgs)
    Public Delegate Sub nuevoregistroEventHandlerA(ByVal sender As Object, ByVal e As NuevoRegistroEventArgs)
    'Public Delegate Sub tabladat
    
    
    Partial Public Class frmTabla
    
        Dim nuevoregistro As Boolean
        Public lmregistros As DataSet
        '   Public Event evenregisigui As botonsiguiManejadorEventosA
        Public Event evenregisigui As EventHandler
        Public Event GraSal1_evenuevoresgistro As EventHandler
        Public Event evenuevoregistroA As nuevoregistroEventHandlerA
    
    
    
    
        Private Sub frmTabla_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Call ColorText()
            Call Deshabilitartextbox()
            AddHandler GrabarSalir1.evenuevoregistro, New nuevoregistroEventHandler(AddressOf GrabarSalir1_evenuevoregistro)
    
            MsgBox("load de clase frmTabla")
            'RUNSql("Select * from Personal") : Registro = 0
            'CargaDatos(Registro)
            'Call Bloqueos(Me, False)
    
        End Sub
    
        Public Sub Recibevariables(ByVal lmregistros As DataSet)
    
            'MsgBox("llego aqui a recibevariables")
            MsgBox("regreso de recibe variables" & lmregistros.DataSetName)
        End Sub
    
        Public Sub Limpiar(ByVal F As Form)
            Dim Obj As Control
            For Each Obj In F.Controls
                If TypeOf Obj Is TextBox Then Obj.Text = ""
                If TypeOf Obj Is GroupBox Then
                    Dim x As Object
                    For Each x In Obj.Controls
                        If TypeOf x Is TextBox Then x.Text = ""
                    Next
                End If
            Next
        End Sub
    
        Public Sub ColorText()
    
            Dim Obj As Control
            For Each Obj In Me.Controls
                If TypeOf Obj Is TextBox Then Obj.BackColor = Color.LightGray
            Next
        End Sub
    
    
        Public Sub Deshabilitartextbox()
    
            Dim Obj As Control
            For Each Obj In Me.Controls
                If TypeOf Obj Is TextBox Then Obj.Enabled = False
            Next
    
        End Sub
    
        Public Sub Habilitartextbox()
            Dim Obj As Control
            For Each Obj In Me.Controls
                If TypeOf Obj Is TextBox Then Obj.Enabled = True
            Next
    
        End Sub
    
    
        'Private Sub botonesnavegacion1_LMOEVentHandler_Botonsigui(ByVal sender As Object, ByVal e As System.EventArgs) Handles BotonesNavegacion1.LMOEVentHandler_Botonsigui
        Public Sub botonesnavegacion1_LMOEVentHandler_Botonsigui(ByVal sender As Object, ByVal e As System.EventArgs) Handles BotonesNavegacion1.LMOEVentHandler_Botonsigui
            ' ESTE ES EL COIDGO DE BOTON SIGUIENTE REGISTRO
    
    
            MsgBox("va al sgte nivel 2 Botonsigui")
    
            'RaiseEvent evenregisigui(sender, e)
            MsgBox("va al sgte nivel 2 Botonsigui va bien " & lmregistros.DataSetName)
    
            'MsgBox("va al sgte nivel 2 Botonsigui va bien")
    
        End Sub
    
    
        ''LMOEVentHandler_Boton3
        ''botonesbasicos1_LMOEVentHandler_Boton3
        ''    Private Sub botonesnavegacion1_LMOEVentHandler_botonsigui(ByVal sender As Object, ByVal e As tabladatasetEventArgs) Handles BotonesNavegacion1.LMOEVentHandler_Botonsigui
        'Private Sub botonesnavegacion1_LMOEVentHandler_botonsigui(ByVal sender As Object, ByVal e As System.EventArgs) Handles BotonesNavegacion1.LMOEVentHandler_Botonsigui
        '    MsgBox("gooooooooo btn sgte")
    
        '    'RaiseEvent evenregisigui(sender, e)
    
        'End Sub
    
    
       
    End Class
    
    Public Class BotonesNavegacion
        Inherits UserControl
     
    
        ' Public Event evesiguienteregistro As siguienteregistroEVentHandler
        Public Event LMOEVentHandler_Botonprinc As EventHandler
        Public Event LMOEVentHandler_Botonanter As EventHandler
        Public Event LMOEVentHandler_Botonsigui As EventHandler
        Public Event LMOEVentHandler_Botonfinal As EventHandler
        Public tablaset As String
        Public latabla As String
    
        Public Sub New()
            ' Llamada necesaria para el diseñador.
            InitializeComponent()
    
        End Sub
        Public Sub btnPrincipio_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnPrincipio.Click
            RaiseEvent LMOEVentHandler_Botonprinc(sender, e)
        End Sub
        Private Sub btnAnterior_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnterior.Click
            RaiseEvent LMOEVentHandler_Botonanter(sender, e)
        End Sub
        Private Sub btnSiguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles btnPrincipio.Click, btnSiguiente.Click, btnAnterior.Click, btnFinal.Click
            MsgBox("COMBATE")
            RaiseEvent LMOEVentHandler_Botonsigui(sender, e)
        End Sub
        Private Sub btnFinal_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnFinal.Click
            RaiseEvent LMOEVentHandler_Botonfinal(sender, e)
        End Sub
    
        Public Sub Esvisible()
            PnlBotonesNavegacion.Visible = True
        End Sub
    
        Public Sub EsInvisible()
            PnlBotonesNavegacion.Visible = False
        End Sub
    End Class





    • Cambiado Enrique M. Montejo lunes, 26 de mayo de 2014 15:35 Pregunta sobre Windows Forms.
    jueves, 22 de mayo de 2014 3:54

Todas las respuestas

  • Por si no se entendio bien el codigo frmTabla aqui va el codigo mejor puesto

    Public Delegate Sub nuevoregistroEventHandlerA(ByVal sender As Object, ByVal e As NuevoRegistroEventArgs)
    
    
    
    Partial Public Class frmTabla
    
        Dim nuevoregistro As Boolean
        Public lmregistros As DataSet
        Public Event evenregisigui As EventHandler
        Public Event GraSal1_evenuevoresgistro As EventHandler
        Public Event evenuevoregistroA As nuevoregistroEventHandlerA
    
    
    
    
        Private Sub frmTabla_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Call ColorText()
            Call Deshabilitartextbox()
            AddHandler GrabarSalir1.evenuevoregistro, New nuevoregistroEventHandler(AddressOf GrabarSalir1_evenuevoregistro)
    
            MsgBox("load de clase frmTabla")
    
    
        End Sub
    
        Public Sub Recibevariables(ByVal lmregistros As DataSet)
    
    
            MsgBox("regreso de recibe variables" & lmregistros.DataSetName)
        End Sub
    
        Public Sub Limpiar(ByVal F As Form)
            Dim Obj As Control
            For Each Obj In F.Controls
                If TypeOf Obj Is TextBox Then Obj.Text = ""
                If TypeOf Obj Is GroupBox Then
                    Dim x As Object
                    For Each x In Obj.Controls
                        If TypeOf x Is TextBox Then x.Text = ""
                    Next
                End If
            Next
        End Sub
    
        Public Sub ColorText()
    
            Dim Obj As Control
            For Each Obj In Me.Controls
                If TypeOf Obj Is TextBox Then Obj.BackColor = Color.LightGray
            Next
        End Sub
    
    
        Public Sub Deshabilitartextbox()
    
            Dim Obj As Control
            For Each Obj In Me.Controls
                If TypeOf Obj Is TextBox Then Obj.Enabled = False
            Next
    
        End Sub
    
        Public Sub Habilitartextbox()
            Dim Obj As Control
            For Each Obj In Me.Controls
                If TypeOf Obj Is TextBox Then Obj.Enabled = True
            Next
    
        End Sub
    
    
        Public Sub botonesnavegacion1_LMOEVentHandler_Botonsigui(ByVal sender As Object, ByVal e As System.EventArgs) Handles BotonesNavegacion1.LMOEVentHandler_Botonsigui
            ' ESTE ES EL COIDGO DE BOTON SIGUIENTE REGISTRO
    
    
            MsgBox("va al sgte nivel 2 Botonsigui")
    
            'RaiseEvent evenregisigui(sender, e)
            MsgBox("va al sgte nivel 2 Botonsigui va bien " & lmregistros.DataSetName)
    
            'MsgBox("va al sgte nivel 2 Botonsigui va bien")
    
        End Sub
    
    
    
    
    
        Private Sub GrabarSalir1_evenuevoregistro(ByVal sender As Object, ByVal e As NuevoRegistroEventArgs)
    
            MsgBox("vamossssssssss")
            RaiseEvent evenuevoregistroA(sender, e)
        End Sub
    
        Private Sub BotonesBasicos1_BasicoEventHandler_Editar1(ByVal sender As Object, ByVal e As System.EventArgs) Handles BotonesBasicos1.BasicoEventhandler_Editar1
            nuevoregistro = False
            BotonesNavegacion1.EsInvisible()
            GrabarSalir1.Esvisible(nuevoregistro)
        End Sub
    
    
    
        Private Sub BotonesBasicos1_BasicoEventHandler_Nuevo1(ByVal sender As Object, ByVal e As System.EventArgs) Handles BotonesBasicos1.BasicoEventHandler_Nuevo1
    
            nuevoregistro = True
            BotonesNavegacion1.EsInvisible()
            GrabarSalir1.Esvisible(nuevoregistro)
            Call Habilitartextbox()
        End Sub
    
    
    
        Private Sub grabarsalir1_GrabarSalirEventHandler_Grabar1(ByVal sender As Object, ByVal e As System.EventArgs) Handles GrabarSalir1.GrabarSalirEventHandler_Grabar1
            BotonesNavegacion1.Esvisible()
            BotonesBasicos1.EsVisible()
            Call Deshabilitartextbox()
        End Sub
    
    
    
    
        Private Sub GrabarSalir1_GrabarSalirEventHandler_Salir1(ByVal sender As Object, ByVal e As System.EventArgs) Handles GrabarSalir1.GrabarSalirEventHandler_Salir1
            BotonesNavegacion1.Esvisible()
            BotonesBasicos1.EsVisible()
    
        End Sub
    
    
    
    
       
    End Class

    sábado, 24 de mayo de 2014 2:22
  • Bueno pongo como lo logre solucionar fue poner en la clase frmTabla , esta variable

    Public lmDataset As DataSet

    Despues en la instancia de la clase (frmProductos) lo uso para cargar los registros queda asi el codigo 

        Private Sub frmProductos_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim lmob = True
            lmDataset = ProductoFN.GetAll(lmob)
            fila = 0
            cargaproductos(fila)
    
        End Sub

    Asi de esta manera puedo pasar con una variable el dataset desde load de frmProductos, lo bueon es uqe puedo usar ya mi clase (frmTabla )para todo tipo de tablas , reusando codigo , lo pongo por su en el futuro alguien esta en el mismo problema que yo

    sábado, 7 de junio de 2014 22:51