Usuario
Como mandar un valor de una instancia de formulario a su clase formulario base?

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.
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
-
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