打印本文 打印本文 关闭窗口 关闭窗口
Henry手记-VB.net WinForm中的FORM初探(二)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2393  更新时间:2009/4/23 19:01:08  文章录入:mintao  责任编辑:mintao
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] 

打印本文 打印本文 关闭窗口 关闭窗口