2012-12-18 179 views
3

首先对我的坏英语感到抱歉。VB.NET在表单之间传递数据

我在VB.NET中做一个应用程序,我有一个小问题。 我有两种形式一个主要的FORM(总是打开),我打开一个对话框。

在辅助表单中(例如打开的对话框),我可以选择做什么,根据我选择的内容我必须触发主窗体中的事件。 让我解释一下,在子窗体中,我选择客户编号2,然后按OK,主窗体必须加载与客户编号2有关的所有数据。

很明显,面向对象vb.net我无法从另一个表单调用子表单(因为我无法访问该实例),也无法声明新表单,因为主表单始终处于打开状态。

然后我如何传递客户的ID并提升事件加载?

回答

7

通过公共或朋友财产暴露在孩子的客户ID,例如(子窗体):

Public Property CustomerID as Integer 

Private Sub OK_Click(s as Object, e as eventargs) Handles OK.Click 
    CustomerID = id 'pass the value here 
    Me.DialogResult = DialogResult.Ok 
End Sub 

在主窗体,然后:

If frmChild.ShowDialog = DialogResult.Ok Then 
    MessageBox.Show("Customer ID: " + frmChild.CustomerID) 
End If 
+0

不要忘了“ Dim frmchild as new myOtherForm“...我可以想象,如果你从一开始就不知道从一开始就在表单之间传递数据,这会非常烦人。 – deltu100

+0

不幸的是我是个怪人!我知道数据是通过属性传递的,理论上我也意识到我可以使用DialogBox,但在编写代码时,我总是怀疑这是否正确,我总是会错过某些东西。 谢谢你的帮助,现在一切正常! –