gpt4 book ai didi

c# - 使用委托(delegate)和事件从另一个表单更新表单

转载 作者:太空宇宙 更新时间:2023-11-03 21:49:22 24 4
gpt4 key购买 nike

我一直忘记这是怎么做到的..

我想在不创建表单实例的情况下从 Form2 更新主表单上的 UI。
我记得使用委托(delegate)/事件并可能以某种方式传入第一种形式的实例,但完全一片空白。

帮帮我,谢谢。

从 Form2 向 Form1 上的 listBox1 添加内容。

最佳答案

是的,委托(delegate)和事件是正确的关键字

在某处实现您的 EventArgs 类:

public class MyEventArgs : EventArgs
{
private List<string> EventInfo;
public MyEventArgs(List<string> strings)
{
EventInfo = strings;
}
public List<string> GetInfo()
{
return EventInfo;
}
}

在 Form2 中:

public class Form2
{
public event EventHandler<MyEventArgs> OnMyChange;

//call it then you need to update:
if(OnMyChange!= null)
{
MyEventArgs e = new MyEventArgs();

List<string> content = new List<string>();
content.Add("abc");
e.EventInfo = content;

OnMyChange(this, e);
}
}

在 Form1 中:

Form2 MyForm2 = new Form2();
MyForm2.OnMyChange += MyChanged;

static void MyChanged(object source, MyEventArgs e)
{
//e.EventInfo will contain list
Console.WriteLine("changed");
}

关于c# - 使用委托(delegate)和事件从另一个表单更新表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15308979/

24 4 0
文章推荐: python - 使用 cv2 时删除 [h264 @ xxx] 错误控制台输出
文章推荐: html - 如何使
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com