2011-01-24 119 views
2

我有一个表单有一个按钮,点击它时弹出一个对话框。在这个对话框中,用户需要选择一些数据,当用户完成时,他们点击OK按钮。一旦他们点击确定按钮,它需要返回一个整数回到先前的表单。在VB.NET表单之间传递数据

我创建了一个对话形式,并试图通过下面的代码调用它:

Dim intResult as Integer = frmData.ShowDialog() 

Debug.Writeline(intResult) 

然而,看来我只能返回DialogResults(中止,取消,忽略...)

我想知道如何在不必创建公共变量并将结果存储在那里的情况下尝试此操作。

回答

4

在对话框上创建一个属性,它将返回值。

If frmData.ShowDialog() Is Not DialogResult.Cancel 
    Dim value as integer = frmData.MyProperty 
    ... 
Endif 
2

在您的对话框窗体上创建一个事件,在您的主窗体上订阅它,然后在对话框中使用事件参数中包含的适当数据将其引发。

1

创建一个cutom对话框到您的项目(添加/新元素/ Windows窗体/对话框)。 然后从它创建一个实例,调用showDialog并检查它的DialogResult是否为Windows.Forms.DialogResult.Ok。您可以访问其所有控件,例如:

Dim d As New Dialog1 
Dim result As DialogResult = d.ShowDialog(Me) 
If result = Windows.Forms.DialogResult.OK Then 
    Dim selectedText As String = d.ComboBox1.SelectedText 
End If