除了隐藏然后稍后关闭隐藏表单之外,还有什么方法可以执行以下操作吗?
Mainform打开SecondForm作为show对话框,我需要在关闭SecondForm的同时从SecondForm打开ThirdForm,同时保持第三个形式在MainForm上扮演“showdialog”?
答案 0 :(得分:2)
当您显示SecondForm()时,将MainForm()作为所有者传递给ShowDialog():
Public Class MainForm
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim sf As New SecondForm
If sf.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
' ... do some processing in here ...
End If
End Sub
End Class
现在,在SecondForm()中,您可以将ThirdForm()的所有者设置为SecondForm()的所有者:
Public Class SecondForm
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.Hide()
Dim tf As New ThirdForm
tf.ShowDialog(Me.Owner)
Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub
End Class
答案 1 :(得分:1)
只要第二个表单返回对话框结果,您就可以从主表单中打开第三个表单
您也可能希望查看MDI,这可以让您更好地控制用户可以做什么和不能做什么。
答案 2 :(得分:0)
在尝试Idle_mind建议之后,它仍然让我在表单之间来回传递问题,不断将它们显示为.showdialog。我解决了我的问题就像tinstaafl建议的那样。我希望在提出不同的方法之前,我会在几个小时之前得到他的信息。
当我关闭每个表单时,我在主窗体中设置一个布尔标志。然后我调用主窗体中的子窗口,将主窗体中的下一个窗体显示为showdialog。我使用触发逻辑的标志im加载是否绑定数据表中的数据,以便我可以编辑它。
抱歉,我知道所有这些表格都让人感到困惑。总结一下,关闭对话框表单(me.close),设置标志,这样一旦showdialog代码满足,调用代码就知道该怎么做。