Form2中的TextBox B使用C#和WinForms显示表单1中TextBox A的文本

时间:2014-11-21 14:07:00

标签: c# winforms

输入相应的文本并按回车键后,我希望Form1中的txtbA文本显示在表单2的txtbB中。

我已经编写了关键事件代码,但我似乎无法弄清楚其余部分。

Visual Basic似乎更简单,我是C#的新手。

这是使用WinForms。

我真的只熟悉visual basic的处理方式:

txtbA.text = My.Forms.Form2.txbB.text

感谢您提供任何帮助!

4 个答案:

答案 0 :(得分:0)

最简单而不是很优雅的方法就是这样:

以第二种形式创建一个属性,该属性可以保存文本框并在Form2中属性的TextChange事件中设置Text属性

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    public TextBox TextBoxWithSameText { get; set; }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {
        if (TextBoxWithSameText != null)
            TextBoxWithSameText.Text = textBox2.Text;
    }
}

现在你要做的就是在创建第二个表单(Form2)时将属性设置为Form1.textbox1:

Form2 form = new Form2();
form.TextBoxWithSameText = textbox1;

答案 1 :(得分:0)

为了在两个Forms类之间交换字符串,您可以使用第三个类。一旦添加到项目中,您需要在Form1和Form2中实例化这个新的Class1:

Class1 class = new Class1;

确保Class1有一个构造函数。现在,您可以使用get和set属性在Class1中创建属性:

public string TextA
{
    get
    {
        return textA;
    }

    set
    {
       textA = value;
    }
}

然后,您可以从已实例化Class1的任何其他类调用这些属性,如下所示:

class.TextA = txtbA.Text;

要在其他文本框中显示文本,您需要一个事件来触发更改txtbB.Text值。您可以使用txtbA.ValueChanged事件或具有Click事件的按钮。您应该弄清楚哪个事件最适合您的项目。

我希望这有帮助!祝你好运。

答案 2 :(得分:0)

您可以使用静态变量

在Form1中

public static string txtbAtext 
{
    get { return txtbAtext ; }
    set {txtbAtext  = value; }
}

OnTextChanged事件

txtAtext = txtA.Text;

在Form2中

Form1 f1 = new Form1();
txtbB.Text = Form1.txtAText;

答案 3 :(得分:0)

根据您的评论:

  

右键,Form1将在按Enter键时打开Form2的实例   键。谢谢!

您可以设置Form2以通过其构造函数接收TextBox的初始值:

public partial class Form2 : Form
{
    public Form2(string InitialValue)
    {
        InitializeComponent();
        this.txtbB.Text = InitialValue;
    }
}

然后在Form1中你会做类似的事情:

Form2 f2 = new Form2(this.txtbA.Text);
f2.Show();