在加载第二个表单时更新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();
        }
    }
}

在加载第二个表单时更新c#表单

无论何时创建表单,都需要从原始表单传递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();
        }
    }
}