Comunidad .NET Monterrey
Desarrolladores ayudando a desarrolladores desde 1999

Va el primero, duda con Clases en Vb.Net 2008 (Problemas de visibilidad)

Latest post 05-27-2008 19:09 by Raymundo. 3 replies.
  • 05-23-2008 12:06

    • Raymundo
    • Top 10 Contributor
      Male
    • Joined on 05-22-2008
    • Monterrey, N.L.
    • Posts 20

    Va el primero, duda con Clases en Vb.Net 2008 (Problemas de visibilidad)

     Que tal gente, es mi primer post. Tengo una duda. Resulta que, tengo un proyecto en Vb.net el cual, tiene una clase principal, y de ella cuelgan multiples colecciones anidadas. en la forma, la clase se instancia en la seccion de declaraciones como privada, pero vive en toda la forma, para todos los eventos e inclusive se pasa como parametro algunas colecciones de la clase, a la Dll donde esta la capa de negocios del proyecto. Hasta aqui, no hay ningun problema.

    El problema viene cuando me dicen, que tengo que desplegar una segunda forma, con un grid, para que el usuario selecicione un registro y de ese registro se le asigne un valor a un metodo de mi clase y en base a esto se corran ciertas funciones de recalculo.

    Hice lo obvio, declare una funcion publica en mi forma principal, donde solo recibo el valor que selecciono el usuario, y en el evento CellContentDoubleClick) de mi forma Popup, mando llamar la funcion mas o menos asi. MiFormaPrincipal.NombreFuncion(ValorSeleccionado

    Entonces, al ejecutar la funcion en la forma principal, mi collecion ya no lleva valores... pero si cierro mi forma Popup la clase vuelve a tener sus valores como si nada hubiera pasado (WTF?).

    Cambie los modificadores de visibilidad a publicos y sigue el mismo problema...

    Que puedo hacer para ejecutar una funcion de mi forma primaria, respetando lso valores de las variables y objetos?

    Filed under: , ,
  • 05-23-2008 18:22 In reply to

    Re: Va el primero, duda con Clases en Vb.Net 2008 (Problemas de visibilidad)

    A ver si entendi...

    Tienes la forma principal que llamare "Form1" y desde ahi abres una segunda forma "Form2" sobre la que seleccionas un registro de un grid y necesitas que la Form1 se entere de la seleccion que hiciste en el grid de la Form2?


    Si ese es el caso yo lo solucionaria de la siguiente manera:

    Form1.vb

        1 Public Class Form1

        2     Private Sub BotonPopup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonPopup.Click

        3         'Crea la forma popup

        4         Dim f As New Form2

        5         'Muestrala como dialogo, aqui se detiene la ejecucion hasta que la forma se cierre

        6         f.ShowDialog(Me)

        7         'Revisa el resultado de la forma

        8         If f.DialogResult = Windows.Forms.DialogResult.OK Then

        9             'Si fue un OK entonces lee la variable "Resultado"

       10             MessageBox.Show(f.Resultado)

       11         End If

       12     End Sub

       13 End Class

    Form2.vb

        1 Public Class Form2

        2     'Variable publica donde se leera el resultado

        3     Public Resultado As Integer

        4 

        5     Private Sub BotonAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonAceptar.Click

        6         'Asigna el valor que quieres regresar a la forma principal

        7         Resultado = 1

        8         'Si el usuario hizo clic en este boton, entonces es un OK

        9         Me.DialogResult = Windows.Forms.DialogResult.OK

       10         'Cierra la forma

       11         Me.Close()

       12     End Sub

       13 

       14     Private Sub BotonCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonCancelar.Click

       15         'Si el usuario hizo clic en este boton, entonces es un CANCEL

       16         Me.DialogResult = Windows.Forms.DialogResult.Cancel

       17         'Cierra la forma

       18         Me.Close()

       19     End Sub

       20 End Class

     

    Espero que esto te sirva. Si no es lo que andas buscando avisame.

  • 05-23-2008 18:51 In reply to

    • Raymundo
    • Top 10 Contributor
      Male
    • Joined on 05-22-2008
    • Monterrey, N.L.
    • Posts 20

    Re: Va el primero, duda con Clases en Vb.Net 2008 (Problemas de visibilidad)

     Si, es exactamente lo que necesito. La unica diferencia que veo es que al momento de llamar el Form2 como dialog, no la instancio y no le paso el owner al showdialog. hare esos cambios y te aviso que paso.

     

    Gracias.

  • 05-27-2008 19:09 In reply to

    • Raymundo
    • Top 10 Contributor
      Male
    • Joined on 05-22-2008
    • Monterrey, N.L.
    • Posts 20

    Re: Va el primero, duda con Clases en Vb.Net 2008 (Problemas de visibilidad)

     Volviendo al tema, ya detecte el problema, y ya quedo solucionado....... Resulta que desde el segundo formulario llamaba a mi funcion asi frmformularioprincipal.funcion lo que provocaba que se instancie el formulario de nuevo y reinicie las variables. llevando a la perdida de valores.

     

    Que cosas no???????.........

Page 1 of 1 (4 items) | RSS
Powered by Community Server (Non-Commercial Edition), by Telligent Systems