我有一个带有按钮的表单,点击它会弹出一个对话框表单。在此对话框表单中,用户需要选择一些数据,当用户完成后,单击“确定”按钮。一旦他们单击“确定”按钮,就需要将整数返回到上一个表单。
我创建了一个对话框表单并尝试通过以下代码调用它:
Dim intResult as Integer = frmData.ShowDialog()
Debug.Writeline(intResult)
然而,似乎我只能返回DialogResults(中止,取消,忽略......)
我想知道如何在不必创建公共变量并将结果存储在那里的情况下尝试这一点。
答案 0 :(得分:4)
在Dialog上创建一个将返回值的属性。
If frmData.ShowDialog() Is Not DialogResult.Cancel
Dim value as integer = frmData.MyProperty
...
Endif
答案 1 :(得分:2)
在对话框表单上创建一个事件,在主表单上订阅它,然后在对话框中使用事件参数中包含的相应数据将其提升。
答案 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