pasar valores de un form a otro

24/08/2006 - 03:46 por Alvaro | Informe spam
hola, he estado detenido mucho tiempo tratando de averiguar como es posible
pasar valores (variables) de un form a otro, ya que no existen variables
globales. la razon de esto es que necesito pasar dos datos los cuales me
serviran en el nuevo form para realizar diferentes actuaciones y controles
de acuerdo a los datos que me entregen esos valores. se los agradeceria si
me pueden ayudar.
 

Leer las respuestas

#1 RAlvare
24/08/2006 - 08:33 | Informe spam
hola, he estado detenido mucho tiempo tratando de averiguar como es
posible
pasar valores (variables) de un form a otro, ya que no existen variables
globales. la razon de esto es que necesito pasar dos datos los cuales me
serviran en el nuevo form para realizar diferentes actuaciones y controles
de acuerdo a los datos que me entregen esos valores. se los agradeceria si
me pueden ayudar.



Tienes varias opciones (que los expertos nos digan cual es mejor a efectos
de seguridad,
reutilización de código, etc)

En el formulario "fuente" creas una propiedad estática pública:

//En digamos: Form1

public static <tipo variable, objeto...> VariableAPasar


//En el Form2:

Tendrás disponible Form1.VariableAPasar

Otra opción (seguimos con Form1 y Form2)

En una clase, creas un objeto, variable, propiedad... de tipo estáticas,
públicas, todos los formularios tendrán acceso a esa "información".
-
-

Sin usar elementos estáticos:

En el método constructor de la clase Form2, recibir los objetos enviados por
el Form1.

Esto es, que cada vez que desde Form1 hagas:

Form2 frmForm2 = new Form2(objetoFuente);

El nuevo Form2 recién creado tendrá acceso a objetoFuente.

//En el Form1, llamo al método constructor de Form2 (Form2 se llama
HerramientaTexto en //este caso) pasándole los objetos que me interesan, de
la siguiente manera:
HerramientaTexto ventanaTexto = new
HerramientaTexto(clsApoyo,controlraton,trataimagen);

ventanaTexto.Activate();

ventanaTexto.Visible = true;

//En este caso he pasado tres objetos completos, pero puedes pasar solo
variables de
cualquier tipo.
-
//Código dentro de la claseApoyo:

public class claseApoyo

{

private MemoryStream m_flujoMemoriaPublico;

private Image m_imagenModificada;

public MemoryStream MeteEnMemoria

{ set { m_flujoMemoriaPublico = value; }

get { return m_flujoMemoriaPublico; }

}

public Image ImagenModificada

{

set { m_imagenModificada = value; }

get { return m_imagenModificada; }

}

}



//En el formulario que recibe los objetos:

public partial class HerramientaTexto : Form

{

claseApoyo m_clsApoyo = new claseApoyo();

trataImagen m_trataImagen = new trataImagen();

ControlRat¢n m_controlRaton = new ControlRat¢n();

public Color ColorElegido = new Color();

//Método constructor de la clase HerramientaTexto (Recibe los objetos
claseApoyo, ControlRatón, y

// trataImagen procedentes del Form1):

public HerramientaTexto(claseApoyo clsApoyo,ControlRat¢n
controlRaton,trataImagen trataImagen)

{

InitializeComponent();


m_clsApoyo = clsApoyo;

m_controlRaton = controlRaton;

m_trataImagen = trataImagen;

}



Se que no te he dado la información bien organizada, pero espero que te
sirvan las pistas.

Preguntas similares