将数据从Form2(textbox2)传输到Form1(textbox1)?

时间:2013-01-08 09:39:03

标签: c# winforms

  

可能重复:
  I would like to control Form1 from Form2

我是C#的新手,我找不到我在谷歌寻找的答案,所以我希望有人可以帮助我。我只是练习将数据(或通过,然后将其调用,然后将其称为)从表单传输到另一个表单。

这就是我所拥有的:

我有2个表单 - Form1Form2 Form1包含一个文本框(名为txtForm1)和一个按钮(名为btnForm1)。
Form2包含一个文本框(名为txtForm2)和一个按钮(名为btnForm2)。

运行应用程序后,单击按钮btnForm1,用户将打开Form2。用户在文本框中写入的文本(txtForm2)应转移到txtForm1中的文本框(Form1,该按钮已被禁用)。

如何进行此转移?请帮忙。

编辑


好的,我需要明确这是我的所有代码:

Form1 (打开 Form2 的按钮):

    private void btnForm1_Click(object sender, EventArgs e)
    {
        new Form2().Show();
    }

Form2 (关闭 Form2 的按钮):

    private void btnForm2_Click(object sender, EventArgs e)
    {
        this.Close();
    }

我没有。 (我是一个新手)

4 个答案:

答案 0 :(得分:0)

创建一个公共变量并将其传递给文本框中的值,然后传递给第二个表单。

public static string myVar;   
myVar = txtForm2.Text;

当你回到第一张表格时: txtForm1.Text = Form2.myVar;

答案 1 :(得分:0)

在你的Form2中你应该有一些:

private void btnForm2_Click(object sender, EventArgs e)
 {          
   this.Hide();       
 }


public String GettxtForm2()
{
    return txtForm2.Text;
}

现在在form1中,你可以使用类似的东西访问txtForm2:

Form2 form2 = new Form2();
 //on click btnForm1 show that form2 where you can edit the txtForm2
 private void btnForm1_Click(object sender, EventArgs e)
     {                
       form2.Show();       
     }
   //after you save the txtForm2 when you will focus back to form1 the txtForm1 will get the value from txtForm2
   private void Form1_Enter(object sender, EventArgs e)
        {
             txtForm1.Text = Form2.GettxtForm2();
        }

您可以轻松修改可以发生所有这些逻辑的事件......

答案 2 :(得分:0)

Form1中的

public void SetTextboxText(String text)
{
    txtForm1.Text = text;
}

private void btnForm1_Click(object sender, EventArgs e)
{
    var frm = new Form2(this); // pass parent form (this) in constructor
    frm.Show();
}
Form2中的

Form _parentForm;

public Form2(Form form)
{
    _parentForm = form;
}

private void txtForm2_TextChanged(object sender, EventArgs e)
{
    _parentForm.SetTextboxText(txtForm2.Text); // change Form1.txtForm1.Text
}

答案 3 :(得分:-1)

试试这个;)

在Form1上:

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

在form2上:

public partial class Form2 : Form
{
    public string textBoxValue;
    public Form2()
    {
        InitializeComponent();
    }

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

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