从子窗体更改文本框文本父级

时间:2013-02-20 12:56:30

标签: c# winforms

我的程序中有两个表单。我有两个文本框和一个按钮。当我单击form1中的按钮时,使用showdialog();显示form2 当我在form2中键入文本框并单击此窗体中的按钮时,form2关闭,焦点位于form1上,我在form2中键入的文本将传输到form1上的文本框。

我该怎么做?

4 个答案:

答案 0 :(得分:3)

  1. 将form1中的引用保存到form2的实例,该实例将显示为对话框
  2. 在form2中公开一个公共属性,给出form2
  3. 中文本框的内容
  4. 当form2关闭时,下一行代码应访问此属性并使用其值填充form1中的文本框,
  5. 类似的东西:

    Window form2 = new Form2();
    form2.ShowDialog();
    this.textBox1 = form2.TextBoxValue;
    

    form2定义了一个属性:

    public string TextBoxValue {
      get { return textBox2.Text; }
    }
    

答案 1 :(得分:0)

如果您不关心安全性,最简单的方法是将form1中的TextBox声明为public,然后从form2更改其text属性。

答案 2 :(得分:0)

在form2中,您必须将textbox修饰符属性更改为public。这将使设计人员为文本框生成公共属性,以便您可以在任何地方访问它。

当form2关闭时,你只需执行:

myTextbox.Text = form2.textBox1.Text;

答案 3 :(得分:0)

试试这个:

(按顺序) 在Form1上:

 private void button1_Click(object sender, EventArgs e)
{
    Form2 frm2 = new Form2();
    frm2.Showdialog();
    this.Hide();
}

然后Form2:

 private void button1_Click(object sender, EventArgs e)
{
    Form2 frm2 = new Form2(textBox2.Text);
    frm2.Showdialog();
    this.Hide();
}

然后是form1:

public partial class Form1 : Form
{
public string textBoxValue;

public Form1()
{
    InitializeComponent();
}

public Form1(string textBoxValue)
{
    InitializeComponent();
    this.textBoxValue = textBoxValue;
}

private void Form1_Load(object sender, EventArgs e)
{
     textBox1.Text = textBoxValue;
}