多個表單之間如何互相調用

來源:互聯網
上載者:User

    在VB6中,多個表單之間可以很方便地互相調用,如:在Form1中,只需要用一條“Form2.Show” 語句就能顯示表單Form2。然而在VB.net中表單處理機制發生了很大的變化:在訪問表單之前,你必須進行表單執行個體化;如果在項目中有多處代碼訪問同一表單,則你必須把它的同一執行個體指標傳遞給這些代碼,否則新建立的表單執行個體就不再是原先的表單了。

    下面的代碼實現表單Form1和Form2之間互相調用,Form1為主表單。Form1上的按鈕BtnShowFrm2的標題為“顯示Form2”,Form2上的按鈕BtnShowFrm1的標題為“顯示Form1”。

    1、Form1中的代碼:

Public Class Form1
 Inherits System.<a href="http://dev.21tx.com/os/windows/" target="_blank">Windows</a>.Forms.Form
 '建立Form2的一個新的執行個體
 Dim Frm2 As New Form2()

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

 Private Sub BtnShowFrm2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles BtnShowFrm2.Click
  '以下語句保證在Form2以及其他表單中訪問Form1時,
  '都將得到Form1的同一個表單執行個體。
  Frm2.Instance(Me)
  Frm2.Show()
  Me.Hide()
 End Sub

End Class

    2、Form2中的代碼:

Public Class Form2
 Inherits System.Windows.Forms.Form
 Dim frm1 As Form1
 '藉助一個新增的Instance屬性來產生表單frm1的執行個體
 Public Function Instance(ByVal frm As Form1)
  frm1 = frm
 End Function

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

 Private Sub Form2_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
  '如果Form2被關閉,則設定Form1的按鈕BtnShowFrm2不可用。
  frm1.BtnShowFrm2.Enabled = False
  frm1.Show()
 End Sub
End Class



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。