咨询大家一下窗体间互相调用的问题
我建了2个窗口form1和form2,2个窗口的load载入中分别放置各自的参数初始化,也分别放置了button1和button2按钮,点击button1会打开form2,form1会隐藏,而点击button2会打开form1,form2会隐藏,经常要点击button1和button2按钮使在form1和form2这2个窗口来回切换。我的代码具体如下:
form1的代码:
Public Class form1
Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a1 As Integer = 1
End Sub
Private Sub button1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
Me.Hide()
Dim frm2 As New form2
frm2.Show()
End Sub
End Class
form2的代码:
Public Class form2
Private Sub form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a2 As Integer = 2
End Sub
Private Sub button2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click
Me.Hide()
Dim frm1 As New form1
frm1.Show()
End Sub
End Class
具体疑问如下:
1.我需要经常要点击button1和button2按钮使在form1和form2这2个窗口来回切换,实际上我想要的效果是:当在form1点击button1,会“彻底”关闭form1(即不是所谓的hide隐藏掉),然后打开form2,同时form2的form2_Load会“重新”初始化a2;反之当在form2点击button2亦然。但上面的代码会不断实例化form2和form1窗口,会不断增加内存占用。这个有什么办法可以实现我想要的效果?
2.我试过不用窗体实例化,即不用Dim frm2 As New form2、frm2.Show()和Dim frm1 As New form1、frm1.Show(),直接使用form1.Show()和form2.Show()以及对应的hide(),这样不会增加内存占用,但是当在第2次来回切换这2个窗口时,不会调用对应Load来初始a1和a2,而且如果在这2个窗口加入me.close,都会把2个窗口关闭掉(我想要的效果是只是关闭当前窗口,另外一个窗口保持存在)。这种情况有什么办法解决?
感觉VB.NET这种窗体间互相调用机制很SB很不人性化。