将值从模态窗体传递到父窗体vb.net

将值从模态窗体传递到父窗体vb.net,vb.net,modal-dialog,pass-by-reference,Vb.net,Modal Dialog,Pass By Reference,我试图在vb.net winforms应用程序中从模式表单向父表单传递信息 1.)我创建了表单的副本,并使用以下代码显示它 dim f=new frmParent() f.show() 2.)根据条件,frmParent上的按钮会打开一个模式子窗体并询问一些信息。为此,我使用了以下代码: dim f = new ChildForm() f.showDialog() 这两种代码都可以正常工作。当用户按saves in child form时,我需要关闭childForm并使用父窗体中的用户类型

我试图在vb.net winforms应用程序中从模式表单向父表单传递信息

1.)我创建了表单的副本,并使用以下代码显示它

dim f=new frmParent()
f.show()
2.)根据条件,frmParent上的按钮会打开一个模式子窗体并询问一些信息。为此,我使用了以下代码:

dim f = new ChildForm()
f.showDialog()

这两种代码都可以正常工作。当用户按saves in child form时,我需要关闭childForm并使用父窗体中的用户类型值。我知道如何关闭子窗体,但不知道如何将信息从子窗体传递到父窗体。

您的子窗体上有公共属性

Public Property MyData As MyType
然后当你展示你可以做的表格时

dim f as new ChildForm()

If f.showDialog = DialogResult.OK Then
   Data = f.MyData()
End if

如果您需要允许它们能够再次编辑该数据,那么您可能还需要考虑将数据传递给对话框的构造函数。它在gr8中起作用了。。。我假设由于子窗体已经关闭,我们将无法从其属性或变量中获取值……好消息。在表单变量(在本例中为f)超出范围之前,您仍然可以访问表单公共属性。您可以在父级读取的子级上拥有公共属性,如David Steele的示例所示;您可以向子窗体传递对主窗体的引用,并让它在父窗体上设置属性或调用函数;您可以让父对象传递对某个对象的引用以保存数据,或者让子对象调用Func来设置数据;在加载子窗体之前,您还可以在子窗体上拥有父窗体附加到的事件。。。可能还有其他人,但这些是首先想到的。