vb调用子窗体:VB中多个窗体之间调用的实现方法



    在VB6中多个窗体的间可以很方便地互相如:在Form1中只需要用条“Form2.Show” 语句就能显示窗体Form2然而在VB.NET中窗体处理机制发生了很大变化:在访问窗体的前你必须进行窗体例子化;如果在项目中有多处代码访问同窗体则你必须把它例子指针传递给这些代码否则新创建窗体例子就不再是原先窗体了 
    下面代码实现窗体Form1和Form2的间互相,Form1为主窗体Form1上按钮BtnShowFrm2标题为“显示Form2”Form2上按钮BtnShowFrm1标题为“显示Form1” 
1、Form1中代码:
Public Class Form1Class Form1
    Inherits .Windows.Forms.Form
    ’创建Form2个新例子
    Dim Frm2 As New Form2

    Public Function Instance2Function Instance2(ByVal frm As Form2)
        Frm2 = frm
    End Function

    Private Sub BtnShowFrm2_ClickSub BtnShowFrm2_Click(ByVal sender As .Object, ByVal e As .EventArgs) _
        Handles BtnShowFrm2.Click
        ’以下语句保证在Form2以及其他窗体中访问Form1时
        ’都将得到Form1个窗体例子
        Frm2.Instance(Me)
        Frm2.Show
        Me.Hide
    End Sub

End Class

2、Form2中代码:
Public Class Form2Class Form2
 Inherits .Windows.Forms.Form
 Dim frm1 As Form1
 ’借助个新增Instance属性来生成窗体frm1例子
 Public Function InstanceFunction Instance(ByVal frm As Form1)
  frm1 = frm
 End Function

 Private Sub BtnShowFrm1_ClickSub BtnShowFrm1_Click(ByVal sender As .Object, ByVal e As .EventArgs) _
        Handles BtnShowFrm1.Click
  Me.Hide
  frm1.Show
 End Sub

 Private Sub Form2_ClosedSub Form2_Closed(ByVal sender As Object, ByVal e As .EventArgs) Handles MyBase.Closed
  ’如果Form2被关闭则设置Form1按钮BtnShowFrm2不可用
  frm1.BtnShowFrm2.Enabled = False
  frm1.Show
 End Sub
End Class
 
Tags:  vb调用dll js调用父窗体函数 delphi窗体调用 vb调用子窗体

延伸阅读

最新评论

发表评论