在加载第二个表单时更新c#表单
本文关键字:表单 更新 第二个 加载 | 更新日期: 2023-09-27 18:14:38
我遇到了一个问题,在c#中更新一个表单内的文本框,同时加载第二个表单。
我的申请表上有两张表格。form1
先加载,然后再加载form2
。
当form2
加载时,它应该用一些文本更新form1
中的textbox.txt
(在本例中为F2:Running
),表明它已经加载。
任何形式的帮助是感激的,这是当前的代码:
namespace EditingBox {
static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
namespace EditingBox {
public partial class Form1: Form {
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
Form2 F2 = new Form2();
Form1 F1 = new Form1();
F2.Show();
textBox1.Select();
textBox1.Refresh();
}
public void textBox1_TextChanged(object sender, EventArgs e) {
}
private void label1_Click(object sender, EventArgs e) {
}
}
}
namespace EditingBox {
public partial class Form2: Form {
public Form2() {
InitializeComponent();
Form1 F1 = new Form1();
F1.textBox1.Select();
F1.textBox1.Text = "F2:Running";
F1.textBox1.Refresh();
}
private void Form2_Load(object sender, EventArgs e) {
Form1 F1 = new Form1();
F1.textBox1.Select();
F1.textBox1.Text = "F2:Running";
F1.textBox1.Refresh();
}
}
}
无论何时创建表单,都需要从原始表单传递Form1 this
实例。目前:Form1 F1 = new Form1();
正在创建form1的新实例,而不是显示的实例。因此,您所需要做的就是将Form1添加到form2的构造函数中,并在显示它时调用该构造函数:
public Form2(Form1 F1)
{
InitializeComponent();
F1.textBox1.Select();
F1.textBox1.Text = "F2:Running";
F1.textBox1.Refresh();
}
private void Form1_Load(object sender, EventArgs e)
{
Form2 F2 = new Form2(this);
F2.Show();
textBox1.Select();
textBox1.Refresh();
}
可以将Form1传递给Form2构造函数:
namespace EditingBox
{
public partial class Form2 : Form
{
Form1 _form1;
public Form2(Form1 form1)
{
InitializeComponent();
_form1 = form1;
_form1.textBox1.Select();
_form1.textBox1.Text = "F2:Running";
_form1.textBox1.Refresh();
}
private void Form2_Load(object sender, EventArgs e)
{
_form1.textBox1.Select();
_form1.textBox1.Text = "F2:Running";
_form1.textBox1.Refresh();
}
}
}