Pasar valores desde un formulario

15/04/2004 - 09:42 por Anonimo | Informe spam
Hola, tengo algo así en mi aplicación

System.Windows.Forms.DialogResult resultado =
formulario.ShowDialog();

if (resultado == System.Windows.Forms.DialogResult.OK)
{
// Recargar Rejilla de Datos
this.CargarRejillaDatos();
}
else if (resultado ==
System.Windows.Forms.DialogResult.Cancel)
{

}

// Liberar
formulario.Dispose();


El caso que quiero que mi formulario me devuelve un
valor. Como podría hacerlo ? Cuándo puedo saber que han
cerrado el formulario y recuperar un valor ?

Gracias.

Preguntas similare

Leer las respuestas

#1 Iker Llanos
15/04/2004 - 11:41 | Informe spam
No sé site servirá. Yo en formulario ese que muestras declararía una variable internal. Por ejemplo
internal int contador

A la vuelta de ese formulario (cuando se establezca el dialogresult) puedes leer el valor de esa variable antes de
realizar el dispose del formulario. Por ejempl

//al declarar la variable contador de tipo internal te permite acceder a ella si los formularios pertenecen al mismo proyect
int a = formulario.contador

formulario.dispose()
Respuesta Responder a este mensaje
#2 Octavio Telis Aynes
15/04/2004 - 18:57 | Informe spam
Veamos, en el entendimiento de que generas un valor en tu formulario, y al
final quieres recuperarlo cuando se cierra...

1. Considerando que el formulario es una clase, puedes declarar una
propiedad en este.

private string miValor;

public string MiValor
{
get
{
return miValor;
}
}

private void MiProceso()
{
...
miValor = "un resultado";
}

2.- Utilizas esta propiedad:

MiFormulario frm = new MiForumlario();
string MiVarDeRetorno;

frm.ShowDialog();
MiVarDeRetorno = frm.MiValor;
frm.Dispose();

Ahora bien, para saber que el usuario cerró el formulario, está bien usar
DialogResult, sin embargo, debes saber por que médio se salión,
para esto, suponiendo que tengas un botón Aceptar, debes asignarle la
propiedad DialogResult a OK para poder hacer uso de un valor devuelto
como el que tienes en el códgio que muestras. Otra manera sería en el evento
closing o en el close (El que más te convenga) validar las condiciones
para decier que el formulario se cierra como OK o como Cancel. Ten en cuenta
que al dar clicl en la "x" de la esquina, el DialogResult será Cancel por
defecto.

Veamos algo...

private void MiFormulario_Closing (Object sender ,
System.ComponentModel.CancelEventArgs e)
{
if(TodoOK)
this.DialogResult = System.Windows.Forms.DialogResult.OK;
else
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
}

Ahora sí podrías usar el código que describes, y recuperar el valor de
retorno como te decía anteriorment.

Bueno, espero que esté en el marco de la ídea, sino, reformula la pregunta
para buscar otras opciones.

Saludos...

Octavio Telis Aynés
www.comunidadpuntonet.org

escribió en el mensaje
news:184b001c422bd$22c892f0$
Hola, tengo algo así en mi aplicación

System.Windows.Forms.DialogResult resultado formulario.ShowDialog();

if (resultado == System.Windows.Forms.DialogResult.OK)
{
// Recargar Rejilla de Datos
this.CargarRejillaDatos();
}
else if (resultado =System.Windows.Forms.DialogResult.Cancel)
{

}

// Liberar
formulario.Dispose();


El caso que quiero que mi formulario me devuelve un
valor. Como podría hacerlo ? Cuándo puedo saber que han
cerrado el formulario y recuperar un valor ?

Gracias.
Respuesta Responder a este mensaje
#3 Pedro Luna Montalvo
15/04/2004 - 20:38 | Informe spam
Puedes harlo de varias formas:

1. Asignandole a un boton del formulario un valor en su propiedad
DialogResult. Cuando abres un formulario en forma modal ShowDialog, y tienes
algun boton con un valor diferente a None en DialogResult, el dialogo se
cierra automaticamente (si haber agregado codigo alguno) al hacer clic sobre
ese boton y retorna el valor indicado.

2. Puedes directamente indicarle al formulario el valor de retorno. Los
formularios tienen una propiedad DialogResult. Asignale un valor a esa
propiedad en el momento en que vas a cerrar tu formulario.


Saludos
Pedro Luna
Gye, Ecu


escribió en el mensaje
news:184b001c422bd$22c892f0$
Hola, tengo algo así en mi aplicación

System.Windows.Forms.DialogResult resultado formulario.ShowDialog();

if (resultado == System.Windows.Forms.DialogResult.OK)
{
// Recargar Rejilla de Datos
this.CargarRejillaDatos();
}
else if (resultado =System.Windows.Forms.DialogResult.Cancel)
{

}

// Liberar
formulario.Dispose();


El caso que quiero que mi formulario me devuelve un
valor. Como podría hacerlo ? Cuándo puedo saber que han
cerrado el formulario y recuperar un valor ?

Gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida