C# 是否将文本框中的文本附加到另一个表单上?

C# 是否将文本框中的文本附加到另一个表单上?,c#,winforms,button,textbox,C#,Winforms,Button,Textbox,我有两张表格。在Form2上,我有一个文本框和一个按钮。当我按下按钮时,我希望它将文本框中的文本附加到Form1上的文本框中。这是我的密码: 表格2: 表格1: 由于某些原因,文本没有显示在Form1的文本框中。但是,弹出的消息框显示我在Form2上输入的文本。尝试正文。text+=+text 很可能您正在更改Form1的隐藏副本中的文本框,而不是屏幕上显示的实例 尝试将Form1句柄传递给Form2的构造函数,并将其保存在类成员变量(也称为field)中,以便在事件处理程序中使用。我认为您必须

我有两张表格。在Form2上,我有一个文本框和一个按钮。当我按下按钮时,我希望它将文本框中的文本附加到Form1上的文本框中。这是我的密码:

表格2:

表格1:


由于某些原因,文本没有显示在Form1的文本框中。但是,弹出的消息框显示我在Form2上输入的文本。

尝试正文。text+=+text

很可能您正在更改Form1的隐藏副本中的文本框,而不是屏幕上显示的实例


尝试将Form1句柄传递给Form2的构造函数,并将其保存在类成员变量(也称为field)中,以便在事件处理程序中使用。

我认为您必须为文本框创建getter和setter,以便它将作为表单类的一部分公开,并且可以作为表单对象访问它 第一穹窿

   public string sometext
    {
        get { return sometext.Text; }
        set { sometext.Text = value; }
    }
第二种形式

Form1 form= new Form1();
 form.sometext = "some name";
这是我找到的另一个简短的解决方案 在表格1中启动表格2

Form2 form2 = new Form2();
form2.Owner = (Form)this;
form2.Show();
在Form2中

this.Owner.Controls.Find("TextBox1",true).First().Text="Hi!!!!"

将值从一个窗体传递到另一个窗体

你可以试试这个。首先,您可以声明一个所有表单都可以访问的变量 像这个,

string yourValue;
PS:声明你的班级

从form1中,您可以向该类传递一个值。 像这样,

YourClass.yourValue = textbox1.text;
一旦有了价值。像这样把它传给你的第二个表格

textbox2.text = YourClass.yourValue;

希望对你有帮助你有两种表格:表格1和表格2。两种形式正在开放。在form2中,您有一个textboxtxt2和一个buttonbtn2。在form1中,您有一个textboxtxt1。当用户在txt2上键入内容并单击btn2时,txt2中的文本将附加到txt1。这就是你想要的

如果是: 在form2中,您应该创建一个委托:

// Declare a delegate
public delegate void GetValue(string value);
// Declare event with delegate
public event GetValue btn2_Clicked;
然后,在form2中,您创建了一个函数来处理该事件:函数名与您刚才声明的事件名相同,并在其中添加前缀。像这样:

public void Onbtn2_Clicked(string value)
{
    if (btn2_Clicked != null)
    {
        btn2_Clicked(value);
    }
}
之后,在btn2点击事件中,升起您刚刚创建的事件:

private void btn2_Click(object sender, EventArgs e)
{
    Onbtn2_Clicked(txt2.Text);
}
好的,这是在表格2中完成的。复出表格1完成: 我假设form2是在用户单击form1中的按钮Tn1时打开的,因此在btn1单击事件中:

private void btn1_Click(object sender, EventArgs e)
{
    // Create form2
    Form2 frm2 = new Form2();
    // Handle btn2 click
    frm2.btn2_Clicked += new Form2.GetValue(frm2_btn2_Clicked);
    // Show form2
    frm2.Show();

}

void frm2_btn2_Clicked(string value)
{
    // When btn2 is clicked, the text in txt2 will be assign to txt1
    txt1.Text = value;                
}

文本将被分配到form1中的txt1

如何将Form2.designer.cs中的txt1框从private更改为public

private System.Windows.Forms.TextBox textBox1;

通过这种方式,您可以按如下方式发送表单2:

Form1 frm1 = new Form1();

private void button1_Click (object sender, EventArgs e)
frm1.textBox1.AppendText(textBox2);

textBox2是您在Form2中输入文本的地方

var frm=Application.OpenForms[Form1]??新表格1;frm.body.Text+=+文本@rcarter:frm将具有错误的静态类型,成员正文的查找将失败。这看起来像jQuery?这个问题被标记为c,而不是javascript。基于事件处理程序签名和MessageBox的使用,可以确定是WinForms,而不是ASP。除了textbox和属性之间的命名冲突外,这无助于访问已经存在的Form1实例,它会创建一个新的隐藏实例。
private System.Windows.Forms.TextBox textBox1;
public System.Windows.Forms.TextBox textBox1;
Form1 frm1 = new Form1();

private void button1_Click (object sender, EventArgs e)
frm1.textBox1.AppendText(textBox2);