Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: deejaykhali en 14 de Abril 2014, 21:31
-
Buenas tardes, tengo una pequeña duda ya que soy nuevo programando en Visual Basic 6.0 y mi pregunta es la siguiente:
Tengo un proyecto con varios formularios (no son dinámicos) que funcionan a la perfeccion salvo un pequeño detalle, hago llamados a un mismo formulario desde formularios distintos y me gustaría saber cual es la manera de volver al formulario que llamo al ultimo, he creado un botron “atrás” con los comandos Hide() y Show() pero solo se devuelve al formulario donde esta el comando pero cuando lo llamo desde otro formulario no vuelve a el sino al formulario donde esta el comando, como no se si me estoy explicando bien lo voy a reflejar en un pequeño código
Asi lo tengo codificado:
Este es el formulario 1
Private Sub Cdm_Sieguiente1_Click()
Frm1.Hide
Frm3.Show
End Sub
Este es el botón atrás del formulario 3 para que vuelva al formulario 1
Private Sub CdmAtras3_Click()
Frm_3.Hide
Frm_1.Show
End Sub
Y este es otro formulario que también llama al formulario 3
Private Sub Cdm_Sieguiente2_Click()
Frm2.Hide
Frm3.Show
End Sub
Mi Pregunta es: Como Hago para que el Formulario 3 vuelva al formulario 2 cuando y no al formulario 1 cuando quien lo haya llamado sea el formulario 2?
De ante mano muchas gracias por la ayuda y la colaboracion
-
Si tienes 3 formularios, en cada formulario puedes tener dos botones para ir a cualquiera de los otros dos formularios:
En el form1:
Private Sub CommandIrA2_Click()
Form2.Show
Form1.Hide
Form3.Hide
End Sub
Private Sub CommandIrA3_Click()
Form3.Show
Form2.Hide
Form1.Hide
End Sub
En el form2:
Private Sub CommandIrA1_Click()
Form1.Show
Form2.Hide
Form3.Hide
End Sub
Private Sub CommandIrA3_Click()
Form2.Hide
Form1.Hide
Form3.Show
End Sub
Private Sub Form_Load()
End Sub
En el form3:
Private Sub CommandIrA1_Click()
Form1.Show
Form2.Hide
Form3.Hide
End Sub
Private Sub CommandIrA2_Click()
Form3.Hide
Form2.Show
Form1.Hide
End Sub
Private Sub Form_Load()
End Sub
Con estos botones puedes ir saltando de un formulario a otro de la forma que quieras. Salu2
-
Muchas Gracias de Verdad, aunque es un ejemplo muy logico no es precisamente lo que ando buscando, o sea, no quiero poner 2 botones en el formulario ya que al formulario 3 (por asi nombarlo) lo llaman otros formularios desde distintos puntos y deseo que en su debido momento el formulario que fue llamado retorne al formulario que lo llamo, estuve probando con la funcion Unload Me y hace lo que quiero a medias ya que deja las ventanas (formularios) de atras abiertas y cuando coloco el comando HIDE pues me las desaparece y el formulario 3 (por asi llamarlo) no vuelve o no consigue al formulario que lo llamo, agradezco mucho tu ayuda amigo, saludos
-
Podrías hacerlo usando variables globales que te almacenen la información de quién llamó al formulario.
Por ejemplo: ultimoLlamoAlForm3Fue = 2
Luego con un if, en el botón para regresar al último formulario que lo llamó, con un if then tendrías que si el último que lo llamó fue el 2 que te muestre el 2, que si el último que lo llamó fue el 1 que te muestre el 1, etc. Saludos.
-
me parece bien esta solucion, ahora mis preguntas son: como y donde establezco VARIABLES GLOBALES y como haria el formulario 3 para saber si lo llamo el 1 el 2 o el "0"? muchas gracias por tu ayuda amigo... feliz dia
-
Para declarar variables globales en Visual Basic 6 tienes que ir al menú Proyecto y elegir la opción "Agregar módulo".
Dentro del código del módulo escribe por ejemplo:
Public quienLLamoAForm1 As Integer
Public quienLLamoAForm2 As Integer
Public quienLLamoAForm3 As Integer
Ahora ya puedes trabajar con esas variables desde cualquier formulario pues tienen visibilidad global, lo que tendrías es que dotar de lógica al programa para saber desde dónde se llamó usando variables globales.
-
voy a probar, gracias por la ayuda