4

我试过这个来传递信息:

Form1 frm1 = new Form1(); 
 textBox1.Text = ((TextBox)frm1.Controls["textBox1"]).Text;

这是获取信息的表单的表单加载。但是没有文字。我该如何解决?Form2正在抓取Form1的文本并显示它。

4

14 回答 14

15

使用属性公开文本框的内容:

class Form1 {
  public string MyValue {
    get { return textBox1.Text; }
  }
}

然后在 Form2 中执行以下操作:

var frm1 = new Form1();
frm1.ShowDialog(this); // make sure this instance of Form1 is visible
textBox1.Text = frm1.MyValue;

如果您想frm1始终可见,请创建frm1一个类变量Form2,并调用例如.Show()的构造函数。Form2

于 2012-06-23T00:09:01.620 回答
5

我发现在 Windows 应用程序中将文本值从一个文本框传递给另一个文本框的简单且合乎逻辑的方法。

在第二种形式写代码: -

    Create a Parameter of *Form2* Constructor.

    namespace PassingValue
    {
         public partial class Form2 : Form
         {
             public Form2(string message)
             {
                 InitializeComponent();
                 Textbox1.Text= message;
             }
         }
    }

在第一种形式写代码: -

   Use the Parameter of Second Form in *First Form*:-

   namespace PassValue
   {
      public partial class Form1 : Form
      {
         public Form1()
         {
            InitializeComponent();
         }

         private void Button1_Click(object sender, EventArgs e)
         {
             Form2 f2=new Form2(Textbox.Text);
             f2.Show();
         }
      }
   }
于 2014-05-17T13:00:46.013 回答
2

试试下面的代码,它对我有用......

    public static string sendtext = "";
private void button1_Click(object sender, EventArgs e)
{
sendtext = txt1.Text;
Form2 frm = new Form2();
frm.Show();
} 

在 form2 的表单加载事件中访问此数据

    private void Form2_Load(object sender, EventArgs e)
{
txt2.Text = Form1.sendtext;
}

享受

于 2013-08-23T17:45:29.737 回答
1

表格 1

//Declare a Static variable
public static string txtInput=string.empty;`

//Set textBox Value to this variable on any event
txtInput=textBox1.Text;

表格 2

// Now Call this variable from the Instance of form 1
string getForm1Value=string.empty;
getForm1Value=Form1.txtinput;
于 2012-06-25T13:00:23.970 回答
1

**

100% 工作

**

取2个表格,Form1和Form2,Form1包含textbox1和Frm1Btn1,Form2包含Frm2Btn1,现在打开form1,点击打开form2

//FORM1 编码:

private void Frm1Btn1_Click(object sender, EventArgs e)

{
    Form2 obj=new Form2();
    obj.showDialog();
}

//FORM2 编码:

private void Frm2Btn1_Click(object sender, EventArgs e)
        {

            Form1 objj = new Form1();

            objj =(Form1) Application.OpenForms["Form1"];

            objj.textBox1.Text = "Salil";

            objj=null;
        }    
于 2013-09-05T15:24:16.100 回答
1

对我来说,最简单的方法是这样的:

  1. 将您的文本框修饰符属性更改为公共;
  2. 在您打开第二个表单的地方,像这样打开它:frm.Show(this);
  3. 在您的 Form2 中,无论您需要文本,只需执行以下操作:
var frm = this.Owner;
var ctl = frm.Controls.Find("textboxOnform1", true).FirstOrDefault() as 
    Control;
TextBox Txt = (TextBox)ctl; 

//And then you can use It 
textboxt1.Text= Txt.Text;

你可以做相反的事情 - 以同样的方式发回文本。

于 2018-01-24T10:47:31.737 回答
0

如果它是一个 Web 表单,MSDN 会在请求文本的页面顶部提出此建议。

     <%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %> 

然后在 page_load

    if (PreviousPage != null)
{
TextBox SourceTextBox = 
    (TextBox) PreviousPage.FindControl("TextBox1");
if (SourceTextBox != null)
{
    Label1.Text = SourceTextBox.Text;
}
}
于 2012-06-22T23:55:33.393 回答
0

确保 Form1 的 textBox1.Text 属性已初始化为您可以看到的实际字符串。我怀疑,由于您使用的是 Form1 的默认实例,因此 TextBox1.Text 属性是String.Empty,这是默认值(以及为什么您没有得到任何可见的文本,这似乎是您所期望的) .

于 2012-06-23T00:24:33.840 回答
0

您可以做的一件简单的事情是将文本框值存储到一个变量中,然后使用构造函数将其传递给另一个表单。例如

string textboxvalue=textbox1.Text();
form2 win = new form2(textboxvalue);

这里 form2 是您要发送值的表单,而 win 是该表单的实例。

于 2014-02-08T17:34:41.040 回答
0

在 Windows 应用程序中,只需转到另一个表单设计器并将该工具声明为公共。您可以从任何形式访问该工具。

于 2016-02-04T07:35:21.517 回答
0

这是在结果表上:

  1. 放一个文本框。
  2. 您必须单击表单,直到弹出代码编辑器。
  3. 在表单加载时,您插入代码。

代码:

Form1 frm1 = new Form1();
frm1.Show();
textBox1.Text = ((TextBox)frm1.Controls["textBox1"]).Text;

第一种形式:

  1. 放一个文本框和一个按钮。

按钮代码(在表单加载时,输入此代码):

this.Close();
于 2016-05-31T13:34:36.607 回答
0

形式1:热咖啡

传递文本框 private void button15_Click(object sender, EventArgs e)//获取信用卡上的项目

    {
            this.Hide();
            hotcoffepayment p = new otcoffepayment(richTextBox2.Text);//pass form1 textbox
            p.Show();
    }

在form2:hotcoffeepayment

公共热咖啡支付(字符串 strValue)

    {
        InitializeComponent();
        textBox1.Text = strValue;//here mention the form2 textbox name 
    }
于 2016-06-22T01:21:59.793 回答
0

您必须将 textbox 的 modifer 属性设置为“public”才能从另一个表单中获取其值

于 2016-07-02T13:14:24.577 回答
-1

表格 1

 class Form1
    {

        public System.Windows.Forms.TextBox textBox1; // we need to make it public Textbox
        private System.Windows.Forms.Button button1;
    }

在 Form2 上单击按钮或任何其他事件使用

表格 2

private void button1_Click(object sender, EventArgs e)
 {
            Form1 _form1 = new Form1();
            this._form2TextBox.Text = _form1.textBox1.Text;
 }

有关详细信息,请访问MSDN

于 2012-06-22T23:59:56.950 回答