Devolver parametro de un formulario

30/08/2005 - 15:56 por amigo | Informe spam
Hola, necesito saber que metodos existen para que un formulario devuelva un
parametro al cerrarlo.
Gracias por de antemano por todas las sugerencias,
Saludos,

Kirck Mcd

Preguntas similare

Leer las respuestas

#1 SoftJaén
30/08/2005 - 16:21 | Informe spam
"amigo" escribió:

necesito saber que metodos existen para que un formulario
devuelva un parametro al cerrarlo.



Hola:

Puedes llamar a un formulario de manera modal, ejecutando el método
«ShowDialog» de la clase «Form». Posteriormente, podrás saber el valor
devuelto consultando la propiedad enumerada «DialogResult».

Por ejemplo, en el formulario de llamada escribirías más o menos lo
siguiente:

' Declaramos un objeto Form
Dim frm As New Form2

' Mostramos el formulario de manera modal y
' comprobamos el resultado
If frm.ShowDialog = DialogResult.OK Then
MsgBox("Se ha pulsado el botón Aceptar")
End If

En el segundo formulario, necesitarás escribir los valores apropiados de la
enumeración «DialogResult», para que el formulario llamador conozca el valor
devuelto por el método «ShowDialog».

Por ejemplo, si tienes un botón de comando llamado «Aceptar», en el evento
«Click» escribirías lo siguiente:

Me.DialogResult = DialogResult.OK

De esta manera, el segundo formulario se cerrará automáticamente,
devolviendo el valor al formulario que ha efectuado la llamada.


Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 amigo
30/08/2005 - 16:56 | Informe spam
Muchas gracias Enrique:
lo que pasa es quiero pasar una valor dentro del parametro(del formulario
Secundario) que es numero de tipo Integer, que es un indice que voy a usar
para actualizar la grilla que está en el formulario Principal. ¿cómo debería
hacerlo en este caso?
Desde ya gracias por tu buena voluntad.
Saludos


amigo


"SoftJaén" escribió en el mensaje
news:
"amigo" escribió:

necesito saber que metodos existen para que un formulario
devuelva un parametro al cerrarlo.



Hola:

Puedes llamar a un formulario de manera modal, ejecutando el método
«ShowDialog» de la clase «Form». Posteriormente, podrás saber el valor
devuelto consultando la propiedad enumerada «DialogResult».

Por ejemplo, en el formulario de llamada escribirías más o menos lo
siguiente:

' Declaramos un objeto Form
Dim frm As New Form2

' Mostramos el formulario de manera modal y
' comprobamos el resultado
If frm.ShowDialog = DialogResult.OK Then
MsgBox("Se ha pulsado el botón Aceptar")
End If

En el segundo formulario, necesitarás escribir los valores apropiados de
la
enumeración «DialogResult», para que el formulario llamador conozca el
valor
devuelto por el método «ShowDialog».

Por ejemplo, si tienes un botón de comando llamado «Aceptar», en el evento
«Click» escribirías lo siguiente:

Me.DialogResult = DialogResult.OK

De esta manera, el segundo formulario se cerrará automáticamente,
devolviendo el valor al formulario que ha efectuado la llamada.


Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o
sugerido en el presente mensaje.



Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
30/08/2005 - 17:13 | Informe spam
Agregando a lo que dice Enrique, este tipo de cosas a mi me gusta hacerlo
del siguiente modo. Primero cambias el constructor del formulario de Public
a Private, asi no puede crearse una instancia de el desde fuera de la clase.
Luego creo un metodo Shared en el formulario que lo abra y me devuelva el
valor. De esta forma solo puedes mostrar el formulario a traves de esa
funcion que te devuelve el valor seleccionado por el usuario. Algo asi:

Public Shared ObtenerIdCliente() As Integer

Dim f As New FormBuscarCliente

Try

f.ShowDialog()

' Aqui devuelves el valor que quieras.
' Puede ser desde un control o una variable
' de instancia del formulario que has seteado
' mientras el usuario usaba el formulario.

Return f.idCliente

Finally

f.Dispose()

End Try

End Function

Tambien de ser necesario puedes pasar parametros al metodo para setear cosas
en el formulario, filtrar datos, etc. Claro que de esta forma se complica un
poco mas el caso en que el usuario cancela el dialogo. La solucion esta en
devolver un valor que no sea valido. En el ejemplo anterior, suponiendo que
el Id de cliente no puede ser negativo podria devolverse -1 si el usuario
cancela. Si se trata de algun tipo por referencia (por ejemplo un String)
puedes devolver Nothing.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#4 Carlos Gómez
30/08/2005 - 17:29 | Informe spam
En el formulario secundario:

public readonly property Indice as Integer
get
return IndiceQueQuieroDevolver
end get
end property



En el formulario principal (donde se llama al secundario)

...
dim formularioSecundario as new FormularioSecundario
formularioSecundario.showDialog
IndiceDeseado=formularioSecundario.Indice
formularioSecundario.dispose
formularioSecundario=nothing
...
Respuesta Responder a este mensaje
#5 SoftJaén
30/08/2005 - 17:42 | Informe spam
"amigo" escribió:

lo que pasa es quiero pasar una valor dentro del parametro
(del formulario Secundario) que es numero de tipo Integer,
que es un indice que voy a usar



Es decir, que lo que deseas es pasar valores entre ambos formularios. Si es
así, tienes dos formas de hacerlo:

1ª. Declarar una variable «Public» en el segundo formulario, y asignarle su
valor desde el primer formulario.

2ª. Incluir el parámetro correspondiente en el constructor del segundo
formulario, para que cuando se ejecute el método «New» pueda coger el valor
que le hayas asignado. Para ello, modifica el método «New» del segundo
formulario, y añádele un parámetro, como por ejemplo:

Public Sub New(ByVal Variable As Integer)

MyBase.New()

'El Diseñador de Windows Forms requiere esta llamada.
InitializeComponent()

'Agregar cualquier inicialización después de la llamada a
InitializeComponent()

' Mostramos el valor en un control de texto
TextBox1.Text = CStr(Variable)

End Sub

Por supuesto, la variable pasada al constructor se la puedes asignar a una
variable «Private» que tengas declarada en el segundo formulario, de esa
forma, su visibilidad alcanzará a todo el formulario.


Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida