0

我在视觉工作室有 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)?在此单击按钮事件中需要什么代码。

谢谢

4

3 回答 3

3

请试试这个:步骤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();
        }
于 2013-04-25T20:14:05.057 回答
1

在您的第二个表单上创建一个可以在保存表单时触发的事件:

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

于 2013-04-25T18:18:53.617 回答
0

研究我能够让它工作,失去了几个小时,但现在一切都很完美,这是对我有用的代码:

在表格 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。

在这里工作完美,希望也能帮助其他人。无论如何感谢所有帮助

于 2013-04-26T05:26:05.703 回答