我在视觉工作室有 2 个表格,
form1 have textbox1.text
form2, have textbox2.text and btnSave
obs:当我单击表单1上的另一个按钮时,表单2打开:
Form new = new form2();
nova.Show();
如何单击 btnSave 将 textbox2 内容从 form2 发送到 form1 (textbox1)?在此单击按钮事件中需要什么代码。
谢谢
我在视觉工作室有 2 个表格,
form1 have textbox1.text
form2, have textbox2.text and btnSave
obs:当我单击表单1上的另一个按钮时,表单2打开:
Form new = new form2();
nova.Show();
如何单击 btnSave 将 textbox2 内容从 form2 发送到 form1 (textbox1)?在此单击按钮事件中需要什么代码。
谢谢
请试试这个:步骤1:为form2类创建一个构造函数,如下所示:
public Form2(string strTextBox)
{
InitializeComponent();
label1.Text = strTextBox;
}
Step2:在form1的按钮单击事件处理程序中实例化form2类,如下所示:
private void button1_Click(object sender, EventArgs e)
{
Form2 obj1 = new Form2(textBox1.Text);
obj1.Show();
this.Hide();
}
在您的第二个表单上创建一个可以在保存表单时触发的事件:
public event Action Saved;
然后在该表单上创建一个允许访问文本框文本的属性:
public string SomeTextValue //TODO: rename to meaningful name
{ get{ return textbox2.Text;} }
Saved
然后,您需要在保存表单时触发该事件:
if(Saved != null)
Saved();
然后,当您第一次创建表单时,Form1
将事件处理程序附加到该事件:
Form2 child = new Form2();
child.Saved += () => textbox1.Text = child.SomeTextValue;
child.Show();
请注意,如果您在保存第二个表单时也关闭了它,那么您不需要自定义事件,您可以使用它FormClosing
。
研究我能够让它工作,失去了几个小时,但现在一切都很完美,这是对我有用的代码:
在表格 2 上:
public partial class form2 : Form
{
private string nome;
public string passvalue
{
get { return nome; }
set { nome = value; }
}
form2,按钮保存:
private void btnSalvar_Click(object sender, EventArgs e)
{
passvalue = txtMetragemcubica.Text;
this.Hide();
}
在 form1 上(此按钮打开 form2):
private void btnMetragemcubica_Click(object sender, EventArgs e)
{
form2 n = new form2();
n.ShowDialog();
txtMetragem.Text = n.passvalue
}
现在它以这种方式工作:在表单 1 上打开,然后单击按钮 btnMetragemcubica 并打开 form2,然后我在不同的文本框上插入值并在 txtMetragemcubica 上显示结果,当我单击保存按钮 (btnSalvar) 时,它关闭 form2 并将值发送到txtMetragem 文本框中的 form1。
在这里工作完美,希望也能帮助其他人。无论如何感谢所有帮助