窗体 2 中的文本框 B,用于使用 C# 和 WinForms 显示窗体 1 中文本框 A 中的文本



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

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

Visual Basic 似乎对此更直接,我是 C# 的新手。

这是使用WinForms。

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

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

感谢您提供的任何帮助!

您可以使用静态变量

在形式1中

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

OnTextChanged 事件

txtAtext = txtA.Text;

在形式 2 中

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

最简单且不太优雅的方法是像这样做:

在第二个窗体中创建一个属性,该属性可以保存文本框,并在 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;

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

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 事件的按钮。您应该弄清楚哪个事件最适合您的项目。

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

根据您的评论:

右,Form1 将在按回车键时打开 Form2 的实例 .key。谢谢!

可以将 Form2 设置为通过其构造函数接收文本框的初始值:

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

然后在 Form1 中,您将执行以下操作:

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

最新更新