1 / 27

第12章 多重表單與模組的應用程式

第12章 多重表單與模組的應用程式. 12-1 VB.NET 的方案與專案 12-2 模組化 VB.NET 應用程式 12-3 多重表單的應用程式 12-4 多重文件介面的應用程式 12-5 執行外部應用程式. 12-1 VB.NET 的方案與專案. 12-1-1 VB.NET 的專案 12-1-2 VB.NET 的方案. 12-1-1 VB.NET 的專案-說明. VB.NET 的專案屬於方案中的容器,每一個專案可以建立執行檔(. exe)、 動態連結程式庫(. dll) 或模組( Modules)。

Download Presentation

第12章 多重表單與模組的應用程式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第12章 多重表單與模組的應用程式 • 12-1 VB.NET的方案與專案 • 12-2 模組化VB.NET應用程式 • 12-3 多重表單的應用程式 • 12-4 多重文件介面的應用程式 • 12-5 執行外部應用程式

  2. 12-1 VB.NET的方案與專案 • 12-1-1 VB.NET的專案 • 12-1-2 VB.NET的方案

  3. 12-1-1 VB.NET的專案-說明 • VB.NET的專案屬於方案中的容器,每一個專案可以建立執行檔(.exe)、動態連結程式庫(.dll)或模組(Modules)。 • VB.NET專案的資訊是儲存在副檔名為.vbproj的檔案中,它記錄了建立專案應用程式所需的檔案、資料夾和編譯等相關資訊。

  4. 12-1-1 VB.NET的專案-種類

  5. 12-1-2 VB.NET的方案-說明 • 如果屬於大型應用程式,我們除了建立VB.NET的Windows應用程式外,可能需要同時開發在網路上使用的ASP.NET和Web Services應用程式,此時就可以在同一個方案建立各種不同應用程式的專案。

  6. 12-1-2 VB.NET的方案-基礎 • 方案簡單的說是專案的容器,內含一到多個專案,使用.sln和.suo儲存方案的定義。

  7. 12-1-2 VB.NET的方案-建立多重專案的方案 • VB.NET如果在預設情況建立專案,同一個方案只會建立一個專案,如果需要在方案中新增其它的專案,一共有2種方法可以新增方案下的專案,如下所示: • 在「方案總管」視窗中的方案名稱上,執行右鍵快顯功能表的「加入/新增專案」指令,即可新增方案中的專案,如下圖所示: • 請執行「檔案/新增/專案」指令,可以看到「新增專案」對話方塊。

  8. 12-2 模組化VB.NET應用程式 • 12-2-1 新增表單 • 12-2-2 新增標準模組 • 12-2-3 模組等級的範圍(Scope) • 12-2-4 指定啟動表單或標準模組

  9. 12-2 模組化VB.NET應用程式 • VB.NET應用程式是使用模組化程式設計,應用程式中的表單、標準模組和類別等就是一個個模組,到目前為止的範例程式都只擁有單一表單。 • 對於複雜的應用程式來說,我們可以建立多重表單和新增共用程序與函數的標準模組。

  10. 12-2-1 新增表單-說明 • 一般的應用程式並不會只有單一表單,如果程式需要多個表單的使用介面,大部分是指對話方塊,我們可以在VB.NET的專案加入所需的表單,預設是以Form2~n.vb依序的方式來命名。

  11. 12-2-1 新增表單-在專案加入新表單 • 在VB.NET的專案加入新表單的方法有2種,如下所示: • 在「方案總管」視窗的專案上,執行右鍵快顯功能表的「加入/加入Windows Form」指令,就可以新增表單。 • 在開啟專案後,執行「檔案/加入新項目」指令來新增表單,本節的範例程式是採用這種方式。

  12. 12-2-1 新增表單-開啟與關閉新表單 • 在From1表單使用程式碼來開啟其它的表單,如下所示: Dim f2 As Form2 f2 = New Form2() f2.Show() • 關閉表單使用的是Close方法,如下所示: f2.Close()

  13. 12-2-2 新增標準模組-說明 • VB.NET的標準模組(Module)屬於一種參考型別,在VB.NET專案加入模組檔案,預設使用Module1~n.vb命名,通常標準模組是用來建立應用程式各表單可以共享的程序與函數。 • 表單From1.vb事實上是一種類別(Class)檔案,表單物件中的程序與函數需要使用物件方法來呼叫,但是在標準模組宣告的公用(Public)變數或程序與函數,就可以直接以程序與函數的呼叫方式,在各表單的程式碼來進行呼叫。

  14. 12-2-2 新增標準模組-新增 • 在「方案總管」視窗的專案上,執行右鍵快顯功能表的「加入/加入模組」指令,可以看到「加入新項目」對話方塊新增模組。

  15. 12-2-3 模組等級的範圍(Scope) • 模組等級範圍可以套用在標準模組、類別與結構,如果是在標準模組、類別與結構中宣告變數、程序與函數,就屬於此等級的範圍,宣告使用的存取關鍵字,如下所示: • Private:宣告成Private的變數、程序與函數,只可以在該模組中的程序與函數來存取與呼叫。 • Public:如果宣告成Public的變數、程序與函數,可以在整個應用程式中各模組的程序與函數來存取與呼叫。

  16. 12-2-4 指定啟動表單或標準模組 • VB.NET專案預設的啟動表單是Form1表單,我們可以將它指定成其它表單或擁有Sub Main程序的標準模組,指定啟動表單或標準模組。

  17. 12-3 多重表單的應用程式-說明 • 在VB.NET的Windows應用程式建立多個表單,其目的通常是為了建立輸入資料的介面,例如:Windows應用程式的「尋找和取代」功能,在執行後會顯示表單或對話方塊,以便輸入搜尋和取代字串。

  18. 12-3 多重表單的應用程式-非強制回應表單(Modaless) • 非強制回應表單開啟的表單是一個獨立表單,使用者可以在各表單之間移動焦點,其地位是相等的,通常應用程式的工具視窗就屬於這種表單,使用者可以自行決定執行那一個表單的功能。 • 表單是使用Show方法開啟表單,如下所示: Private Sub mnuItemReplace_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles mnuItemReplace.Click f2 = New Form2() f2.Show() ' 開啟表單 End Sub

  19. 12-3 多重表單的應用程式-強制回應表單(Modal) • 強制回應表單簡單的說是對話方塊,在開啟表單或對話方塊後,使用者需要輸入資料和關閉視窗後,才能繼續執行應用程式。 • 表單是使用ShowDialog方法開啟表單,如下: Private Sub mnuItemSearch_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles mnuItemSearch.Click f3 = New Form3() f3.ShowDialog() ' 開啟對話方塊 If f3.DialogResult = DialogResult.OK Then ………… End If End Sub

  20. 12-4 多重文件介面的應用程式-說明 • 「多重文件介面」(Multiple-document Interface)不同於上一節的多重表單,而是在父MDI表單之中,可以同時開啟多個子MDI表單,如下圖所示:

  21. 12-4 多重文件介面的應用程式-建立父MDI表單 • 父MDI表單是子MDI表單的容器表單,只需將表單,例如:Form1的【IsMDIContainer】屬性設為【True】,就可以將表單Form1建立成父MDI表單。

  22. 12-4 多重文件介面的應用程式-建立與開啟子MDI表單 • 子MDI表單是在父MDI表單中顯示的表單,在父表單需要使用程式碼開啟子表單,使用的是Show方法,如下所示: Dim fc As Form2 = New Form2() fc.MdiParent = Me fc.Show() • 使用Close方法來關閉表單。 • 在父MDI表單的主功能表新增【視窗(W)】的功能表選項,然後將選項的【MDIList】屬性設為True,就可以自動建立開啟子MDI表單選項的清單。

  23. 12-4 多重文件介面的應用程式-取得擁有焦點的子MDI表單 • 因為在同時開啟的多個子MDI表單中,只有一個表單是作用中的表單,即取得焦點,在父MDI表單物件可以使用ActiveMdiChild屬性取得是那一個表單物件,如下所示: Dim active As Form2 = Me.ActiveMdiChild If (Not active Is Nothing) Then ……….. End If

  24. 12-4 多重文件介面的應用程式-子MDI表單取得父MDI表單 • 反過來看,對於作用中的子MDI表單,如果需要呼叫父MDI表單的公用函數,此時可以使用子MDI表單的MdiParent屬性取得父MDI表單,如下所示: Dim parent As Form1 = Me.MdiParent parent.Search(txtSearch.Text)

  25. 12-4 多重文件介面的應用程式-排列子MDI表單 • 在父MDI表單可能開啟多個子MDI表單,所以在父MDI表單的主功能表可以新增選項,切換不同的子表單排列方式,如下所示: Me.LayoutMdi(MdiLayout.Cascade)

  26. 12-4 多重文件介面的應用程式-剪貼簿(Clipboard)處理 • VB.NET的剪貼簿處理是Clipboard類別,使用SetDataObject方法存入剪貼簿,如下所示: Clipboard.SetDataObject(active.txtInput.SelectedText) • 取出剪貼簿內容物件是使用GetDataObject方法,如下所示: Dim data As IDataObject = Clipboard.GetDataObject() • If條件檢查物件內容的資料格式,如下所示: If data.GetDataPresent(DataFormats.Text) Then active.txtInput.SelectedText = _ data.GetData(DataFormats.Text).ToString() End If

  27. 12-5 執行外部應用程式 • VB.NET執行外部程式的函數是Shell函數,如下: progID = Shell("C:\Windows\System32\notepad.exe", _ AppWinStyle.NormalFocus)

More Related