我是C#
的新手,我找不到我在谷歌寻找的答案,所以我希望有人可以帮助我。我只是练习将数据(或通过,然后将其调用,然后将其称为)从表单传输到另一个表单。
这就是我所拥有的:
我有2个表单 - Form1
和Form2
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();
}
我没有。 (我是一个新手)
答案 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;
}