| Private Sub Command2_Click()
Form1.Show
Me.Hide
End Sub
Private Sub Form_Unload(Cancel As Integer)
Form1.Show 关闭Form2,唤出Form1
End Sub
升级后,多了一组用Region折起来的“升级支持”
Form1:
#Region "升级支持"
Private Shared m_vb6FormDefInstance As Form1
Private Shared m_InitializingDefInstance As Boolean
Public Shared Property DefInstance() As Form1
Get
If m_vb6FormDefInstance Is Nothing OrElse m_vb6FormDefInstance.IsDisposed Then
m_InitializingDefInstance = True
m_vb6FormDefInstance = New Form1()
m_InitializingDefInstance = False
End If
DefInstance = m_vb6FormDefInstance
End Get
Set
m_vb6FormDefInstance = Value
End Set
End Property
#End Region
Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
Form2.DefInstance.Show()
Me.Hide()
End Sub
Private Sub Form1_Closed(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Closed
End
End Sub
在Form2中,除了升级支持外的代码是:
Private Sub Command2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
Form1.DefInstance.Show()
Me.Hide()
End Sub
Private Sub Form2_Closed(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Closed
Form1.DefInstance.Show()
End Sub
在上面的代码中,要注意的是是用Form1.DefInstance.Show()来show出Form1的一个实例。DefInstance 是 Shared的属性,它能以 “窗体名.DefInstance” 的形式直接访问。它所在项目中的任何代码访问它都将得到同一个窗体实例。
这样,我们就能模拟 vb6完成的项目对窗体的直接引用了,只不过在代码中以 Form1.DefInstance 代替 Form1 而已。如果要设置窗体上的一个label的内容,现在是这样用了:Form1.DefInstance.Label1.text=”Henry”
我们完全可以copy下“升级支持”这一段代码,然后注意我上两段写的内容,就可以不用升级工具,而自己动手写了。
----
声明:本文版权与解释权归韩睿所有,如需转载,请保留完整的内容及此声明。
QQ: 18349592
上一页 [1] [2] |