Enviar valores de un formulario a otro formulario

Resuelto Nagu asked hace 14 años • 0 respuestas

Quiero pasar valores entre dos formularios (c#). ¿Cómo puedo hacerlo?

Tengo dos formularios: Form1 y Form2.

Form1 contiene un botón. Cuando hago clic en ese botón, Form2 debería abrirse y Form1 debería estar en modo inactivo (es decir, no seleccionable).

Form2 contiene un cuadro de texto y un botón de envío. Cuando escribo cualquier mensaje en el cuadro de texto de Form2 y hago clic en el botón enviar, Form2 debería cerrarse y Form1 debería resaltarse con el valor enviado.

¿Cómo puedo hacerlo? ¿Alguien puede ayudarme a hacer esto con un ejemplo sencillo?

Nagu avatar Oct 13 '09 18:10 Nagu
Aceptado

Hay varias soluciones para esto, pero este es el patrón que suelo usar.

// Form 1
// inside the button click event
using(Form2 form2 = new Form2()) 
{
    if(form2.ShowDialog() == DialogResult.OK) 
    {
        someControlOnForm1.Text = form2.TheValue;
    }
}

Y...

// Inside Form2
// Create a public property to serve the value
public string TheValue 
{
    get { return someTextBoxOnForm2.Text; }
}
Jesper Palm avatar Oct 13 '2009 12:10 Jesper Palm
private void button1_Click(object sender, EventArgs e)
{
        Form2 frm2 = new Form2(textBox1.Text);
        frm2.Show();    
}

 public Form2(string qs)
    {
        InitializeComponent();
        textBox1.Text = qs;

    }
nadi avatar Oct 16 '2011 15:10 nadi

Definir una propiedad

public static class ControlID {  
    public static string TextData { get; set; }
}

En elForm1

private void button1_Click(object sender, EventArgs e)
{  
    ControlID.TextData = txtTextData.Text;   
}

Obtener los datos Form1yForm2

private void button1_Click(object sender, EventArgs e)
{   
    string text=  ControlID.TextData;   
}
shweta avatar Jan 11 '2013 09:01 shweta

Después de una serie de luchas para pasar los datos de un formulario a otro, finalmente encontré una respuesta estable. Funciona a las mil maravillas.

Todo lo que necesita hacer es declarar una variable public static datatype 'variableName'en un formulario y asignar el valor a esta variable que desea pasar a otro formulario y llamar a esta variable en otro formulario usando directamente el nombre del formulario ( no cree un objeto de este formulario como Se puede acceder a las variables estáticas directamente ) y acceder al valor de esta variable.

Ejemplo de ello es,

Formulario 1

public static int quantity;
quantity=TextBox1.text; \\Value which you want to pass

Formulario2

TextBox2.Text=Form1.quantity;\\ Data will be placed in TextBox2
Sujith H S avatar Mar 13 '2014 07:03 Sujith H S

Declarar una cadena pública enform1

public string getdata;

en el botón deform1

form2 frm= new form2();
this.hide();
form2.show();

Para enviarle datos, form1puede probar cualquier evento y código siguiente en ese evento.

form1 frm= new form1();
form1.getdata="some string to be sent to form1";

Ahora, después de cerrar form2y abrir form1, puede usar los datos devueltos en getdatauna cadena.

Hassan Raza avatar Jan 06 '2014 10:01 Hassan Raza