我正在创建 Windows 窗体应用程序,相信被称为单例程序设计。 这是使用具有不同选项的主窗体供用户选择。 这些选项又都有其相应的形式,并附有独特的功能。 当主窗体执行并且用户选择一个选项时,选项窗体随后被隐藏 远离用户(而不是关闭)直到再次被选中。注意..它没有关闭。
我有一个带有富文本框的表单,在检查内容有效性后,我想将该数据发送到另一个有 ListView 框的表单...基本上更新另一个表单上的 ListView 框。
我看到的所有示例都会创建新的表单实例,这对我来说并不理想....(因为我的表单已经打开)
这就是我到目前为止所得到的......
public delegate void EventDelegate(Object sender, EventArgs e);
public event EventDelegate MessageForListView;
if (status == 0)
{
value = value.ToLower();
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(value + " " + datestamp);
MessageBox.Show(value.ToString() + " is now registered....... ");
/// message event required here to pass back value and datestamp to the form holding the ListViewBox
MessageForListViewEvent += NewDriverForm_MessageForListViewEvent;
ReSetInput();
}
}
private void NewDriverForm_MessageForListViewEvent(object sender, EventArgs e){
/// how do I write the data into the ListViewBox or call the reload procedure again.
}
NewDriverForm
已获取数据,我想将其发送到具有 ListView 框的 viewRegisterForm
。发布的代码位于 NewDriverForm
提前致谢...非常感谢您的帮助
最佳答案
您可以在 NewDriverForm
中创建一个静态事件并指定您要发送的数据类型:
public static EventHandler<TypeOfDataToBeSend> MessageForListView;
并将数据传递到调用中:
MessageForListView?.Invoke(this, objectOfYourDataType);
现在在 viewRegisterForm
中注册此事件,并在已注册的事件方法中提取此信息:
NewDriverForm.MessageForListView += NewDriverForm_MessageForListViewEvent;
public void NewDriverForm_MessageForListViewEvent(object sender, TypeOfDataToBeSend objectOfYourDataType)
{
// use here the objectOfYourDataType
}
关于c# - 如何使用事件处理程序将数据从一种形式传输到另一种形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56491979/