我正在创建Windows Forms Application,该应用程序被称为单例程序设计。 这是使用带有不同选项的主窗体供用户选择的。 这些选项依次具有各自的形式和附加的独特功能。 当执行主表单并且用户选择一个选项时,该选项表单将被隐藏 远离用户(反对关闭),直到再次选择。注意..它没有关闭。
我有一个带有多格式文本框的表单,在检查了内容的有效性之后,我想将该数据发送到另一个具有列表视图框的表单中……基本上在另一种表单上更新了列表视图框。
我所见过的所有示例都创建了新的表单实例,这对我而言并不理想。...(因为我的表单已经打开)
这是我到目前为止所得到的。...
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
已获得数据,我想将其发送到具有列表视图框的viewRegisterForm
。发布的代码位于NewDriverForm
预先感谢...非常感谢您的帮助
答案 0 :(得分:1)
您可以在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
}