首页 > 解决方案 > 从 C# 中的另一个表单访问文本框 - 请注意,我要为其设置框的表单是第一个表单

问题描述

所以这与我所看到的有点不同:

如何在 Visual C# 中更改另一个窗体上的文本框中的文本?

我有一个在我的 C# 应用程序运行时运行的表单 (Form1)。一个按钮 Form1 打开 Form2。在 Form2 上,我有另一个按钮可以将 Form1 上的文本框的文本设置为与 Form2 上的文本框相同的值。

使用类似的方法:

Form1 frm1 = new Form1(); frm1.TextBoxValue = "SomeValue";

无法完全打开一个新表单,但我想更改已经打开的表单1,有人可以帮忙吗?

标签: c#.net

解决方案


您必须将Textbox值存储在 Form2 的某些属性中,如下所示:

public string ReturnValue {get;set;} 

private void Form2_button2_Click(object sender, EventArgs e)
{
     ReturnValue = txtInput.Text;
}

或者您可以将生成字段的访问修饰符Form2.Designer.cs从私有更改为公共。

改变这个

private System.Windows.Forms.TextBox txtInput;

这样

public System.Windows.Forms.TextBox txtInput;

然后在Form1您可以获得ReturnValue最终用户关闭时的值Form2

private void Form1_popupButton_Click(object sender, EventArgs e)
    {
       Form2 frm = new  Form2();
       frm.ShowDialog();

      // get ReturnValue from form2
      string ReturnValue = frm.ReturnValue ;
      //get txtInput value directly
      ReturnValue = frm.txtInput.Text;
}

推荐阅读