rtc#如果点击窗体2中的按钮 刷新窗体1,代码该怎么写,求个参考
其实对于C#的Winforms桌面应用程序来说,跨窗体传值已经是个老生常谈的问题了,使用委托&事件可以实现。先看效果:
我也写了几篇关于C# Winforms应用使用委托和事件实现跨窗体传值的文章,供参考:
此回答使用的是Action
的实现方案。
窗体一代码:
namespace WinFormsApp2.Forms
{
public partial class Form6 : Form
{
public Form6()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var fm = new Form7();
fm.UpdateMessage = (message) =>
{
label1.Text = message;
};
fm.ShowDialog();
}
}
}
窗体二代码:
namespace WinFormsApp2.Forms
{
public partial class Form7 : Form
{
public Form7()
{
InitializeComponent();
}
public Action<string> UpdateMessage;
private void button1_Click(object sender, EventArgs e)
{
var message = $"这里来看窗体二的消息,现在时间是:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}";
UpdateMessage?.Invoke(message);
}
}
}
发消息,或者记录那个窗体的实例,调用他的刷新方法。