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

Comunicación entre Formularios y Clases

Estas en el tema de Comunicación entre Formularios y Clases en el foro de .NET en Foros del Web. Queria hacerte una consulta a ver si podeís ayudarme. Cuando uno crea una nueva instancia de una clase, mas concretamente del tipo form Por ejemplo: ...
  #1 (permalink)  
Antiguo 09/10/2008, 02:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Comunicación entre Formularios y Clases

Queria hacerte una consulta a ver si podeís ayudarme.

Cuando uno crea una nueva instancia de una clase, mas concretamente del tipo form
Por ejemplo:

Código:
private void Boton1_Click(object sender, EventArgs e)
{

MiForm nuevoForm = new MiForm();
nuevoForm.Show();

[Nota1]

}

private void Boton2_Click(object sender, EventArgs e)
{

...codigo para cerrar la instancia creada arriba...

[Nota2]

}
Condiciones.
1. Suponemos que solo existe una instancia de nuevoForm.

Preguntas.
a) ¿De que manera se podría acceder a los controles de nuevoForm desde el punto Nota2, si solo existe una instancia del mismo? b) ¿Y desde otra clase?
No quiero crear variables globales del tipo:


Código:
public static
para cada control. Imaginar que son muchos controles.

Mi idea sería algo como obtener el handler de la ventana y así acceder a los controles... pero no se el código exacto para hacerlo, o si eso seria lo mas conveniente.

Tampoco quiero un Singleton ¿O sería esta la mejor solución?

Bueno un saludo y gracias.

Codigo en C#.

[Gracias Peterpay]
[Gracias Trulala de cordoba]

Última edición por SbsXrX; 10/10/2008 a las 04:48
  #2 (permalink)  
Antiguo 09/10/2008, 17:34
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 24 años, 4 meses
Puntos: 19
Respuesta: Comunicación entre Formularios y Clases

Hola amigo.

Tenes que hacer es buscar controles en tu formulario y luego podes ir preguntando por el tipo que tenes y asi filtras si queres buscar controles del tipo textbox etc.

Algo mas o menos asi:

private Control FindControl(string Target,Control Parent)
{

Control myControl = new Control ();
foreach (Control c in Parent.Controls)
{
if (c.Name == Target)
{
myControl = c;
break;
}
else
{
if(c.Controls.Count >0)
myControl = FindControl(Target,c);
}
}
return myControl;
}
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 10/10/2008, 04:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Comunicación entre Formularios y Clases

Estimado Cristian muchas gracias por tu respuesta.
Aunque he encontrado una respuesta que creo se adapta mas a mi necesidad, que es:

Código:
Form_Defs f1 = (Form_Defs)Application.OpenForms[IndexForm];
f1.Text1.Text = "Example";
Donde:
Form_Defs es un formulario .cs que ya tendremos definido.
IndexForm es el indice dentro de la colección de formularios.
f1 represeta al Form_Defs instanciado.
Text1 es un control definido dentro de Form_Defs y que se ha establecido como public.

Nuevamente, gracias por tu respuesta.
  #4 (permalink)  
Antiguo 11/10/2008, 16:56
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 24 años, 4 meses
Puntos: 19
Respuesta: Comunicación entre Formularios y Clases

Buenisimo amigo, gracias por compartir tu solucion !!!
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #5 (permalink)  
Antiguo 13/10/2008, 12:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Comunicación entre Formularios y Clases

De nada Cristian, para eso estamos, para echarnos un cable siempre que se pueda, y de esa manera mejorar cada vez mas nuestra manera de programar.

Un saludo grande.

PD: Cordoba... del Potro R. y la Mona G.?
  #6 (permalink)  
Antiguo 13/10/2008, 13:54
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 24 años, 4 meses
Puntos: 19
Respuesta: Comunicación entre Formularios y Clases

Cita:
Iniciado por SbsXrX Ver Mensaje
De nada Cristian, para eso estamos, para echarnos un cable siempre que se pueda, y de esa manera mejorar cada vez mas nuestra manera de programar.

Un saludo grande.

PD: Cordoba... del Potro R. y la Mona G.?
En realidad de los dos, pero un poco mas LA MONA.
Saludos
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
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 20:00.