窗体 2 中的文本框 B,用于使用 C# 和 WinForms 显示窗体 1 中文本框 A 中的文本
本文关键字:文本 窗体 显示 WinForms 中文 用于 | 更新日期: 2023-09-27 18:31:19
输入适当的文本并按回车键后,我希望 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();