c# - usuario - Obtener texto de un cuadro de texto en un formulario e insertarlo en un cuadro de texto de otra forma
que hace el control caja de texto en access (2)
Soy muy nuevo en el lenguaje C #, así que, por favor, tómenme las cosas con calma. Lo que quiero preguntar es bastante simple, pero siendo nuevo, no sé cómo hacerlo.
Tengo 2 formularios: Form1 y Form2. Form1 es el "predeterminado", el que tiene cuando abre la aplicación. Tengo 2 cuadros de texto en el segundo formulario y dos botones (ok y cancelar). En el primer formulario, tengo un botón que abre el segundo formulario al hacer clic en él y en un cuadro de texto. Traté de obtener el texto de esos 2 cuadros de texto en el formulario 2 y ponerlo en el cuadro de texto desde el formulario 1, pero no pude hacerlo. Quiero cuando hago clic en Aceptar en el segundo formulario, el texto de esos 2 cuadros de texto en el formulario 2 se coloca en el cuadro de texto de form1 y cuando hago clic en cancelar, simplemente cierro form2. ¿Me puedes ayudar?
Puede crear una propiedad pública en Form2 configurada por Form1 cuando presiona su botón.
public string TextValueFromForm1 { get; set; }
En el evento Carga de formulario, puede establecer el valor de su cuadro de texto en el de la propiedad.
Ejemplo de la Forma 2
public class Form2 : Form
{
private TextBox textBox1;
private TextBox textBox2;
public string TextValue1 { get; set; }
public string TextValue2 { get; set; }
public Form2()
{
this.Load += new EventHandler((object sender, EventArgs e) =>
{
textBox1.Text = TextValue1;
textBox2.Text = TextValue2;
});
}
}
Si entiendo tu pregunta:
- Form2 tiene 2 TextBoxes ( textBox1
y textBox2
) y 2 botones ( btnOK
y btnCancel
)
- Si se presiona btnOK
, concatena los valores de textBox1
y textBox2
y los pasa a Form1
- Si se presiona btnCancel
, no pase ningún dato
Breve descripción de mi respuesta:
Se puede lograr fácilmente con controladores de eventos, simplemente conectar al evento OnFormClosing
y leer datos de propiedades predefinidas de Form2
Algunos códigos para ilustrar mi respuesta están debajo
Form1.cs
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show();
frm2.FormClosing += new FormClosingEventHandler(frm2_FormClosing);
}
void frm2_FormClosing(object sender, FormClosingEventArgs e)
{
if ((sender as Form2).textData != null)
textBox1.Text = (sender as Form2).textData;
}
}
Form2.cs
public partial class Form2 : Form
{
public string textData;
public Form2()
{
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
textData = textBox1.Text + " " + textBox2.Text;
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
}