Foros del Web » Programación para mayores de 30 ;) » .NET »

Cual es el formulario que ha llamado al formulario actual?

Estas en el tema de Cual es el formulario que ha llamado al formulario actual? en el foro de .NET en Foros del Web. Buenos Dias! Mi idea era hacer un Form2 para poder reutilizarlo en varios formularios, por lo tanto su funcionamiento depende desde cual formulario es llamado. ...
  #1 (permalink)  
Antiguo 30/06/2010, 22:35
Avatar de dmassive  
Fecha de Ingreso: febrero-2002
Ubicación: Paraná - Entre Ríos - Argentina
Mensajes: 279
Antigüedad: 22 años, 8 meses
Puntos: 7
Pregunta Cual es el formulario que ha llamado al formulario actual?

Buenos Dias!

Mi idea era hacer un Form2 para poder reutilizarlo en varios formularios, por lo tanto su funcionamiento depende desde cual formulario es llamado.

Supongamos, desde el Form1 llamo al Form2 de esta manera:

Código vb:
Ver original
  1. Dim f As Form2 = New Form2()
  2.  
  3.         f.Show()


En el Form2 lo que quiero es saber cual fue el formulario que lo llamo. He probado cosas como Me.Parent.

Desde ya gracias.
__________________
Blümchen... einfach die rave Prinzessin
http://www.dmassive.com.ar/
  #2 (permalink)  
Antiguo 01/07/2010, 00:58
Avatar de Indigo77  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 60
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Cual es el formulario que ha llamado al formulario actual?

Hola,

directamente no se me ocurre ninguna idea, pero lo que si puedes hacer es un propiedad en Form2 de tipo Form y cuando form1 crea a form2, le pasa una referencia a si mismo. Seria algo asi

En form2
public Form Padre { get; set; }

En form1
Form2 f = new Form2();
f.Padre=this;
f.Show();

Espero que te sirva. Saludos.
__________________
Visita mi blog http://www.detrasdelteclado.com
  #3 (permalink)  
Antiguo 01/07/2010, 07:34
Avatar de dmassive  
Fecha de Ingreso: febrero-2002
Ubicación: Paraná - Entre Ríos - Argentina
Mensajes: 279
Antigüedad: 22 años, 8 meses
Puntos: 7
De acuerdo Respuesta: Cual es el formulario que ha llamado al formulario actual?

Hola, siguiendo tu ejemplo, en VBnet arme esto:

Form1.vb
Código vb:
Ver original
  1. Public Class Form1
  2.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.         Dim f As New Form2()
  4.         f.Padre = Me
  5.         f.Show()
  6.     End Sub
  7.  
  8.     Public Sub HaceAlgo()
  9.         Me.Text = "Lo Hizo!"
  10.     End Sub
  11. End Class



Form2.vb
Código vb:
Ver original
  1. Public Class Form2
  2.     Private _padre As Form
  3.  
  4.     Public Property Padre() As Form
  5.         Get
  6.             Return _padre
  7.         End Get
  8.         Set(ByVal value As Form)
  9.             _padre = value
  10.         End Set
  11.     End Property
  12.  
  13.     Public Sub MostrarNombre()
  14.         Me.Text = Padre.Name
  15.     End Sub
  16.  
  17.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  18.         MostrarNombre()
  19.     End Sub
  20. End Class


Gracias, saludos!
__________________
Blümchen... einfach die rave Prinzessin
http://www.dmassive.com.ar/
  #4 (permalink)  
Antiguo 01/07/2010, 09:03
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Respuesta: Cual es el formulario que ha llamado al formulario actual?

y si te evitas crear una propiedad y pasas directamente el formulario en la propiedad Tag del otro formulario:

frmobj forma = new frmobj();
forma.Tag = this;


y cuando lo llames de tu otro formulario:

frmobj formaenotroform = frmobj();
formaenotroform = (formaenotroform)this.Tag;
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.

Etiquetas: llamado, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:26.