繁体   English   中英

使用其他形式的按钮以编程方式更改 form.text

[英]Change the form.text programmatically with a button of other form

我无法更新我的应用程序的第一个表单。 当它打开它加载所有元素,然后通过一个按钮我打开第二个表单,然后用一个按钮我应该重新加载第一个表单的所有控件,包括 form1.text 但这不会发生。 尽管标记我看到文本变量已正确更新,但在图形级别上它不会改变。

表格1:

 public partial class Form1 : Form
    {
       public string mail { get; private set; }
        public Form1()
        {
            InitializeComponent();
            
        }
        public void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "table - Last Update: " + DateTime.Now.ToString();
             ...some other code...
        }
        public void updateform()
        {
            this.Controls.Clear(); 
            InitializeComponent(); 
            Form1_Load(null, null);
            this.Refresh();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            mail = lbl1.Text;
            Form2 form2 = new Form2(mail);
            form2.Show();
        }
}

形式2:

 public partial class Form2 : Form
    {
        public Form2(String stringa)
        {
            InitializeComponent();
            email = stringa;

        }
        private void button1_Click(object sender, EventArgs e)
        {
            Form1 f1 = new Form1();
            f1.updateform();
            this.Close();
        }

您可以使用Show()命令将 Form1 的引用传递到 Form2 中。 可以使用.Owner属性访问该引用。

在 Form1 中:

private void button1_Click(object sender, EventArgs e)
{
    mail = lbl1.Text;
    Form2 form2 = new Form2(mail);
    form2.Show(this); // <-- pass reference to Form1
}

在 Form2 中:

private void button1_Click(object sender, EventArgs e)
{
    Form1 f1 = this.Owner as Form1; // <-- attempt to convert .Owner to Form1
    if (f1 != null)
    {
        f1.updateform();
    }
    this.Close();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM