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

本文关键字:传输 Form1 textbox1 textbox2 数据 Form2 | 更新日期: 2023-09-27 17:51:02

可能重复:
我想从Form2 控制Form1

我是C#的新手,在谷歌上找不到我想要的答案,所以我希望这里有人能帮助我。我只是在练习将数据(或者pass,随便你怎么称呼它(从一个表单传输到另一个表单。

这是我的:

我有两种形式——Form1Form2
Form1包含一个文本框(名为txtForm1(和一个按钮(名为btnForm1(
Form2包含一个文本框(名为txtForm2(和一个按钮(名为btnForm2(。

运行应用程序后,单击按钮btnForm1,用户将打开Form2。用户在文本框(txtForm2(中写入的文本应传输到Form1中的文本框(txtForm1,哪个按钮被禁用(。

我该如何转账?

编辑时间:
好的,我需要明确的是,这是我所有的代码:

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();
    }

我什么都没有了。(我是个新手(

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

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

public static string myVar;   
myVar = txtForm2.Text;

当您返回到第一种形式时:txtForm1.Text = Form2.myVar;

在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();
        }

您可以很容易地修改所有这些逻辑可能发生的事件。。。

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
}

试试这个;(

在Form1:上

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

表格2:

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;
    }