una pasar otro objeto net lista formularios formulario entre datos comunicar como abiertos c# winforms

otro - pasar objeto entre formularios c#



Pasar datos entre dos formularios con propiedades (3)

Paso datos entre 2 formularios de Windows en C #. Form1 es el formulario principal, cuyo cuadro de texto recibirá el texto que se le pasó desde form2_textbox y lo mostrará en su cuadro de texto (form1_textbox).

Primero, se abre form1, con un cuadro de texto vacío y un botón, al hacer clic en form1_button, se abre form2. En Form2, ingresé un texto en form2_textbox y luego hice clic en el botón (form2_button) .ON clic evento de este botón, enviará el texto al cuadro de texto de form1 y form1 se enfocará con su form1_textbox vacío con un texto recibido de form2.

Estoy usando propiedades para implementar esta tarea. FORM2.CS

clase parcial pública Form2: Formulario {// declara el evento en el formulario 2 evento público EventHandler SomeTextInSomeFormChanged;

public Form2() { InitializeComponent(); } public string get_text_for_Form1 { get { return form2_textBox1.Text; } } //On the button click event of form2, the text from form2 will be send to form1: public void button1_Click(object sender, EventArgs e) { Form1 f1 = new Form1(); f1.set_text_in_Form1 = get_text_for_Form1; //if subscribers exists if(SomeTextInSomeFormChanged != null) { SomeTextInSomeFormChanged(this, null); } } }

FORM1.CS

public partial class Form1 : Form { public Form1() { InitializeComponent(); } public string set_text_in_Form1 { set { form1_textBox1.Text = value; } } private void form1_button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); f2.SomeTextInSomeFormChanged +=new EventHandler(f2_SomeTextInSomeFormChanged); } //in form 1 subcribe to event Form2 form2 = new Form2(); public void f2_SomeTextInSomeFormChanged(object sender, EventArgs e) { this.Focus(); } }


¿Qué tal esto?

((Form2)Application.OpenForms["Form2"]).textBox1.Text = "My Message";



En form2 necesitas crear un evento y suscribirte a él en form1. Eso es todo.

//declare event in form 2 public event EventHandler SomeTextInSomeFormChanged; // call event in form2 text_changed event if(SomeTextInSomeFormChanged != null) SomeTextInSomeFormChanged(this, null); //in form 1 subcribe to event var form2 = new Form2(); form2.SomeTextInSomeFormChanged += SomeHandlerInForm1WhereYouCanSetForcusInForm1

Actualizar:

Form2:

public Form2() { InitializeComponent(); } public void button1_Click(object sender, EventArgs e) { //if subscribers exists if(SomeTextInSomeFormChanged != null) { SomeTextInSomeFormChanged(form2_textBox1, null); } }

Formulario 1:

public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void form1_button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); f2.SomeTextInSomeFormChanged +=new EventHandler(f2_SomeTextInSomeFormChanged); } public void f2_SomeTextInSomeFormChanged(object sender, EventArgs e) { var textBoxFromForm2 = (TextBox)sender; form1_textBox1.Text = textBoxFromForm2.Text this.Focus(); } }