将数据从Form2(textbox2)传输到Form1(textbox1)?
可能重复:
我想从Form2控制Form1
我是C#
的新手,我在谷歌找不到我想要的答案,所以我希望有人可以帮助我。 我只是练习从表单到另一个表单传输数据(或传递,无论如何调用它) 。
这就是我所拥有的:
我有两种forms – Form1
和Form2
。
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(); }
我没有。 (我是新手)
创建一个公共变量并将其传递给文本框中的值,然后传递到第二个表单上。
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(); }
在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; }