如何将字符串从新表单传递给form1 richtextbox?

时间:2016-07-06 23:14:40

标签: c# .net winforms

在Form1中

private void button4_Click(object sender, EventArgs e)
{
    AddText at = new AddText();
    at.Show();
    richTextBox2.Text = at.text;
}

以新表格

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace test
{
    public partial class AddText : Form
    {
        public string text = "";

        public AddText()
        {
            InitializeComponent();
        }

        private void AddText_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            text = textBox1.Text;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

当我点击新表单中的button1时,它会将textBox1中的文字分配给变量文字。

但是它没有将它传递给Form1.richTextBox2。 我想问题是我尝试在按钮点击事件中分配Form1中的文本:

richTextBox2.Text = at.text;

但这发生在新表单中的按钮Click事件之前。 我应该在Form1中将文字分配给richTextBox2

我使用ShowDialog()只有在关闭新表单窗口时才能正常工作。只有当我关闭它时,我才能看到richTextBox2中的文字。但是,当我单击“确定”(按钮1)按钮而未关闭表单时,我希望在richTextBox2中看到该文本。

1 个答案:

答案 0 :(得分:2)

Form1中

private void button4_Click(object sender, EventArgs e)
{
  AddText at = new AddText(this);
  at.Show();
  richTextBox2.Text = at.text;
}

public void SetText(string text)
{
  richTextBox2.Text = text;
}

新表格

  public partial class AddText : Form
  {
    private Form1 _form1;

    public AddText(Form1 form1)
    {
      InitializeComponent();
      _form1 = form1;
    }

    private void AddText_Load(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
      _form1.SetText(textBox1.Text);
    }

    private void button2_Click(object sender, EventArgs e)
    {
      this.Close();
    }
  }