2011-01-24 151 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