Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: jhct en 17 Septiembre 2009, 18:16 pm



Título: manipular formulario desde un formulario modal
Publicado por: jhct en 17 Septiembre 2009, 18:16 pm
hola... como puedo manipular un formulario  desde otro formulario modal, el formulario modal es invocado desde el primer formulario, se que si en el primer formulario pongo codigo(despues del codigo q invoca al modal) que por ejemplo tome los valores que tienen algunos controles en el formulario modal, al cerrar el formulario modal continua con la ejecucion de ese codigo, pero lo que tengo en mente es no cerrar el formulario modal, por ejemplo en el formulario modal registro un cliente y en el formulario que invoca al modal lista los clientes(una grilla) en cuanto agregue un cliente desde el formulario modal que el primer formulario liste denuevo los clientes y me muestre el nuevo cliente agregado pero sin tener que cerrar el modal...


Título: Re: manipular formulario desde un formulario modal
Publicado por: Atrum en 17 Septiembre 2009, 19:32 pm
Pues para lograr la comunicacion entre formularios debes de declarar miembros publicos en las respectivas clases, ya sean metodos o variables.

Te pongo un ejemplo hecho en VS 2008 donde se comunican 2 forms

Referencia:

El form1 contiene

un check box con nombre CheckBox1
un boton con nombre Button1

El form2 contiene

un text box con nombre TextBox1
un boton con nombre Button1

aqui esta el codigo del form1

Código
  1. Public Class Form1
  2.    Public Forma2 As New Form2 'Aqui esta la declaracion publica del form2
  3.  
  4.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5.        Forma2.Show()
  6.    End Sub
  7.  
  8.    Public Sub Check() 'Esta es la funcion publica que puedes llamar desde cualquier otro form
  9.        Me.CheckBox1.Checked = Not Me.CheckBox1.Checked
  10.    End Sub
  11.  
  12.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  13.        Forma2.Click_Boton() 'Aqui llamamos una funcion publica de el form2
  14.    End Sub
  15.  
  16. End Class
  17.  
  18.  

Codigo del form2

Código
  1. Public Class Form2
  2.  
  3.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.        Form1.Check() 'Llamamos a la funcion publica del form1
  5.    End Sub
  6.  
  7.    Public Sub Click_Boton() 'aqui nuestra funcion publica
  8.        Me.TextBox1.Text = "Boton en otro form"
  9.    End Sub
  10. End Class
  11.  

ahora, si corres este ejemplo y haces click en el boton del form1 veras que aparece un texto en el textbox del form2, y si haces click en el boton del form2 el Checkbox del form1 estara marcado o desmarcado cada ves que lo presiones, pues ya con esto puedes mandar cualquier variable o objeto a cualquier otro form, e inclusive desencadenar eventos.

Espero no haber entendido mal, ojala te ayude