如何在 windows 应用程序中将数据从一种形式传递到另一种形式的文本框?

How to pass data from one form to another form textbox in windows application?

我正在尝试将变量从一个表单传递到另一个表单文本框。 'variable' 是基于用户输入的计算结果。

下面是父表单 (RuleInsertForm) 的代码,我在其中调用子表单 (Helpformula) 以获取用户输入。

 public partial class RuleInsertForm : Form
    { 
    public string helpformulainputs;
    }

 private void RuleInsertForm_Load(object sender,EventArgs e)
    {

  if (helpformulainputs=="")
        {
            textBox_Inputs.Text = "";
        }

        else
        {
        textBox_Inputs.Text = helpformulainputs;
        }

      }

下面是我将结果变量 (formulainputs) 传递给父表单 (RuleInsertForm) 的子表单 (Helpformula) 的代码。

 public partial class HelpFormula : Form
{
    public string formulainputs = string.Empty;

   private void button_generateformula_Click(objectsender, EventArgs e)
    {
        using (RuleInsertForm insertform = new RuleInsertForm())
        {

                insertform.helpformulainputs = formulainputs;
                this.Close();
                insertform.Show();

        }
     }

  }

问题: 这些值正在传递到文本框,但在 UI 中没有显示。

到目前为止,我尝试将数据推送回父表单,然后尝试在我失败的文本框中显示数据。(我不知道哪里出了问题建议我是否可以解决以下问题)

现在我需要一个替代方法,例如:不是将数据推回父表单,而是需要使变量可用于所有尝试使用子表单的表单(formulainputs)

我怎样才能完成这个过程?非常感谢任何建议。

问题似乎是 insertForm.Show() 没有阻止按钮处理程序的执行。 Show 打开 insertform 作为非模式。

因此在 insertform 打开后,在 button_generateformula_Click 中继续执行,当您退出 using 块时,insertform 被释放并因此关闭。

要解决此问题,您可以改为调用 insertForm.ShowDialog()


对于表单之间的不同通信方式,请查看 here 或直接在 SO 搜索框中键入 communicate between forms