刷新/重载从表单1到表单2
本文关键字:表单 重载 刷新 | 更新日期: 2023-09-27 17:54:08
private void Form1_Load(object sender, EventArgs e)
{
f2 = new Form2();
f2.Show();
}
我有这个代码在我的表单1。这样就会自动运行Form2_Load
。是否有可能,当我点击Form1上的按钮。Form2_Load
无需关闭Form2即可再次运行
回复你的评论:
当点击Form1上的按钮时,它将发送消息更新到form2。而Form2中的文本框则会显示消息
(首先,这不是观察者模式。但没关系,它不需要。)
首先,Form1
需要保留对Form2
实例的引用:
public class Form1
{
private Form2 Form2Instance { get; set; }
private void Form1_Load(object sender, EventArgs e)
{
Form2Instance = new Form2();
Form2Instance.Show();
}
// the rest of your code
}
现在Form1
上的其他代码可以引用该实例。这是因为您不希望在任何情况发生变化时实际重新加载所有Form2
。你只是想"发送一个消息更新到form2"。
现在,Form2
如何接收该消息?它可以公开一个方法。像这样:
public class Form2
{
public void Update(string newValue)
{
someTextBox.Text = newValue;
}
// the rest of the code
}
现在Form1
上的代码可以在它引用的Form2
实例上调用该方法。所以当你点击Form1
上的按钮时,你可以这样做:
Form2Instance.Update("some value");
这将向Form2
的实例"发送消息"