第11章 多表單與模組的視窗應用程式 11-1 Visual Basic的方案與專案 11-2 模組化Visual Basic應用程式

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
程式開發工具 Visual BASIC Express 2008 程式語言 程式語言的概念.
第 1 章 使用 APP INVENTOR 2 開發 ANDROID APP
第13章 檔案與資料夾處理 13-1 System.IO類別的基礎 13-2 檔案與資料夾操作 13-3 文字檔案的讀寫
CH11.
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式 2-1 如何設計Visual Basic應用程式 2-2 建立主控台應用程式
第2章 建立Visual Basic應用程式.
物件導向程式設計 CH1, CH2.
JDK 安裝教學 (for Win7) Soochow University
第1章 認識Arduino.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
第2章 建立Visual Basic應用程式 2-1 使用Visual Studio開發Visual Basic應用程式
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
Google Data API Spreadsheet
副程式 將可以重複使用的程式區塊獨立而成 寫在Private Sub 函數名稱() 副程式碼 End Sub 呼叫副程式
桌面環境簡介及IDE開發工具 Outline (一)什麼是Linux? (二)桌面環境系統簡介 (三)IDE開發工具.
第3章 Visual Basic 2008 Express 使用
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
剪貼簿.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
第2章 建立VB.NET應用程式 2-1 如何設計VB.NET應用程式 2-2 第一個VB.NET的主控台應用程式
安裝JDK 安裝Eclipse Eclipse 中文化
網頁切換移轉 JS vs. ASP.NET.
Quiz6 繳交期限: 12/14(四) 23:59前.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
第4章 視窗應用程式的基本輸出入.
檔案與磁碟的基本介紹.
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
Java 程式設計 講師:FrankLin.
網頁切換移轉 JS vs. ASP.NET.
Java程式設計 Eclipse.
第一單元 建立java 程式.
VS.NET 2003 IDE.
Ch20. 計算器 (Mac 版本).
Pocket Access.
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
第 19 章 XML記憶體執行模式.
第一個cordova project Cordova project建立與平台設定,均藉由cli(command line interface來完成 建立project請打開命令提示字元視窗應輸入下列命令 cordova create hello tw.edu.stust.mis.hello HelloWorld.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
打地鼠(陣列版).
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
Install OpenCV C++ with Visual Studio 2017 on Windows PC
Google協作平台+檔案分享(FileZilla+網路芳鄰)
數位學習資料收集整理 Evernote應用
個人網路空間 資訊教育.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
引用檔案.
利用 EditorConfig 自訂文字編輯器設定
計算機程式 Visual BASIC 程式設計
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
挑戰C++程式語言 ──第7章 輸入與輸出.
函數應用(二)與自定函數.
陣列與結構.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
安裝JDK 配置windows win7 環境變數
Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青
小畫家教學 電子版儲存於 學校網頁/學科資訊/電腦科
若要查看更多祕訣、影片、說明和訓練,請瀏覽 aka.ms/officetips
多國語系 建國科技大學 資管系 饒瑞佶.
Chapter 4 Multi-Threads (多執行緒).
Develop and Build Drives by Visual C++ IDE
InputStreamReader Console Scanner
Presentation transcript:

第11章 多表單與模組的視窗應用程式 11-1 Visual Basic的方案與專案 11-2 模組化Visual Basic應用程式 11-3 建立多表單的應用程式 11-4 建立多文件介面的應用程式 11-5 執行外部應用程式

11-1 Visual Basic的方案與專案 11-1-1 Visual Basic的專案 11-1-2 Visual Basic的方案

11-1-1 Visual Basic的專案-說明 在本書前建立的主控台或Windows應用程式,都是隸屬於同名方案的Visual Basic專案。如果準備建立大型應用程式,在一個方案下可能需要建立多個專案。 Visual Basic專案是方案中的容器,每一個專案可以建立執行檔(.exe)、動態連結程式庫(.dll)或模組(Modules)等。

11-1-1 Visual Basic的專案- 專案的基礎 Visual Basic專案的資訊是儲存在副檔名為.vbproj的檔案,在專案檔案記錄建立應用程式所需的檔案、資料夾和編譯等相關資訊。請開啟Visual Basic專案,可以在右上角看到「方案總管」視窗,如右圖所示:

11-1-1 Visual Basic的專案- 專案的屬性頁(圖例) 在「方案總管」視窗的專案上執行右鍵快顯功能表的【屬性】指令,可以看到專案的屬性頁。

11-1-1 Visual Basic的專案- 專案的屬性頁(屬性說明) 【應用程式】標籤的常用屬性,如下表所示:

11-1-1 Visual Basic的專案- 專案的種類 在VS Express for Desktop新增專案時提供多種專案範本,可以幫助我們快速建立所需的應用程式,如下表所示: 專案範本 說明 Windows Form應用程式 建立擁有Windows圖形使用介面的應用程式 WPF應用程式 建立Windows Presentation Foundation客戶端應用程式 主控台應用程式 建立在命令提示字元或在MS-DOS執行的命令列應用程式 類別庫 建立可以和其他專案共用的VB類別庫(.dll)

11-1-2 Visual Basic的方案-說明 如果使用VS Express for Desktop建立大型應用程式,除了建立Visual Basic的Windows應用程式外,我們可能需要同時建立多個類別庫,此時就需要在同一個方案建立多個專案來開發應用程式。

11-1-2 Visual Basic的方案- 方案的基礎 方案簡單的說是專案的容器,內含一到多個專案,使用.sln儲存方案的定義。請開啟「程式範例\Ch11\Ch11-1-2」資料夾的Visual Basic專案,可以看到「方案總管」視窗,如右圖所示:

11-1-2 Visual Basic的方案- 建立多專案的方案 VS Express for Desktop在預設情況下,同一個方案只建立一個專案,如果需要在方案新增其他專案,如下圖所示:

11-2 模組化Visual Basic應用程式 11-2-1 新增表單 11-2-2 新增模組 11-2-3 模組等級的範圍 11-2-4 指定啟動表單或模組

11-2-1 新增表單-說明 Visual Basic應用程式如果使用模組化程式設計,在應用程式中的表單、模組和類別等都可以視為是一個個模組。 到目前為止的範例程式都只有單一表單,對於複雜的應用程式,我們可以建立多個表單和新增共用程序與函數的模組。 如果程式需要多個表單使用介面,大部分是指對話方塊。我們可以在Visual Basic專案加入所需表單,預設是以Form2~n.vb依序來命名。

在Visual Basic專案加入新表單的方法有2種,如下所示: 11-2-1 新增表單-在專案加入新表單 在Visual Basic專案加入新表單的方法有2種,如下所示: 在「方案總管」視窗的專案上,執行右鍵快顯功能表的「加入/ Windows Form」命令,就可以新增表單。 在開啟專案後,執行「專案/加入Windows Form」命令來新增表單,本節的程式範例是使用此方式。

11-2-1 新增表單-開啟與關閉新表單 如果Visual Basic專案擁有多個表單,除非將它設為啟動表單,否則Form1表單需要使用程式碼來開啟其他表單,如下所示: Dim f2 As Form2 f2 = New Form2() f2.Show() 程式碼在宣告Form2表單物件變數f2後,使用Show()方法開啟Form2表單。關閉表單是使用Close()方法,如下所示: f2.Close()

11-2-1 新增表單- Visual Basic專案 Visual Basic專案:Ch11-2-1 在Windows應用程式新增第2個表單Form2,只需在Form1按下按鈕,可以開啟或關閉Form2表單,如下圖所示:

11-2-2 新增模組-說明 Visual Basic模組(Modules)是一種參考資料型態,在Visual Basic專案加入模組檔案,預設使用Module1~n.vb命名,通常專案中的模組是用來建立表單共享的程序與函數。 表單Form1.vb是類別(Class)檔案,在表單建立的程序與函數需要使用物件方法來呼叫,但是位在模組宣告的公用(Public)變數或程序與函數,就能夠使用如同Visual Basic內建函數的方式來進行呼叫。

11-2-2 新增模組-模組程式範例 Module Module1 Public Function SearchText(strSource As String, _ strTarget As String, _ start As Integer) As Integer Return InStr(start, strSource, strTarget) End Function Public Function ReplaceText(strSource As String, _ strFind As String, _ strReplace As String) As String Return Replace(strSource, strFind, strReplace) End Module

11-2-2 新增模組- Visual Basic專案 Visual Basic專案:Ch11-2-2 此Windows應用程式是修改自Ch8-3-4的Visual Basic專案,將搜尋取代功能的程式碼建立成SearchText()和ReplaceText()函數,並且改置於Module1.vb模組,如下圖所示:

11-2-3 模組等級的範圍-說明 模組等級範圍可以套用在模組、類別與結構,如果在模組、類別與結構宣告變數、程序與函數,就屬於此等級的範圍。其宣告使用的存取關鍵字,如下所示: Private:宣告成Private的變數、程序與函數,只能在該模組中的程序與函數來存取與呼叫。 Public:如果宣告成Public的變數、程序與函數,可以在整個Visual Basic應用程式中各模組的程序與函數來存取與呼叫。

11-2-3 模組等級的範圍-範例 當使用Dim宣告變數時,沒有使用任何存取關鍵字,預設使用Private範圍。例如:在類別與結構Score新增Sum()方法來計算總分,此時在呼叫時需要指明建立的物件或結構變數hueyan,如下所示: hueyan.Sum() 上述程式碼是呼叫物件或結構的方法。如果是位在模組的程序與函數Sum(),就只需使用名稱來呼叫,如下所示: Sum()

11-2-4 指定啟動表單或模組- 加入主程式 按二下Module1.vb開啟程式碼編輯視窗後,請加上主程式Main(),如下所示: 01: Public Sub Main() 02: Dim f1 As Form1 = New Form1() 03: Application.Run(f1) 04: End Sub 上述Main()主程式的第2列建立Form1表單物件,在第3列開啟表單,因為是執行應用程式,所以使用Application.Run()方法來執行Form1表單物件。

11-2-4 指定啟動表單或模組- 指定啟動為Sub Main Visual Basic專案預設的啟動表單是Form1表單,我們可以將它指定成其他表單或擁有程序Main()主程式的模組。如下圖所示:

11-2-4 指定啟動表單或模組-為 什麼指定啟動為Sub Main 因為當程式需要存取Form1表單的控制項屬性,或呼叫表單物件的方法時,為了方便存取與呼叫,我們只需在模組將表單物件使用Public宣告成全域變數,就可以在其他表單存取此表單物件的成員。 在下一節的範例程式就是使用此技巧,以便能夠在多表單的Form2表單存取Form1表單控制項的屬性值。

11-3 建立多表單的應用程式-說明 在Visual Basic建立多表單的Windows應用程式,其目的通常是為了建立不同的資料輸入介面。例如:建立Windows應用程式的「尋找和取代」功能,在執行後可以顯示表單或對話方塊,用來輸入搜尋和取代字串。 換句話說,除了第10章的預設對話方塊外,我們也可以自行建立表單作為對話方塊用途。表單或對話方塊依照資料輸入方式分為:非強制回應和強制回應表單。

11-3 建立多表單的應用程式- 非強制回應表單(Modeless) 非強制回應表單開啟的表單是一個獨立表單,使用者可以在各表單間移動焦點,其地位是相等的。通常在應用程式的工具視窗,就屬於這種表單,使用者可以自行決定執行哪一個表單的功能。 當在Visual Basic專案加入表單後,表單是使用Show()方法來開啟,如下所示: f2 = New Form2() f2.Show() 上述程式碼在建立表單Form2物件後,使用Show()方法開啟非強制回應表單Form2。

11-3 建立多表單的應用程式- 強制回應表單(Modal) 強制回應表單就是對話方塊,在開啟表單或對話方塊後,使用者需要輸入資料和關閉視窗後,才能繼續執行應用程式。例如:MsgBox()函數的Windows訊息視窗,就屬於這種表單。 在Visual Basic專案加入表單後,表單是使用ShowDialog()方法開啟表單,如下所示: f3 = New Form3() f3.ShowDialog() ' 開啟對話方塊 If f3.DialogResult = DialogResult.OK Then …… End If

11-3 建立多表單的應用程式- Visual Basic專案 Visual Basic專案:Ch11-3 此Windows應用程式是修改自Ch10-5的Visual Basic專案,筆者準備完成記事本的【編輯】功能表,包含搜尋與取代功能,分別使用非強制回應表單和強制回應表單來建立此功能,如下圖所示:

11-4 建立多文件介面的應用程式-說明 「多文件介面」(Multiple-document Interface)不同於上一節的多表單應用程式,它是在父MDI表單,可以同時開啟多個子MDI表單,如下圖所示:

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

11-4 建立多文件介面的應用程式- 建立與開啟子MDI表單 子MDI表單是在父MDI表單中顯示的表單,在父表單需要使用程式碼來開啟子MDI表單,使用的是Show()方法,如下所示: Dim fc As Form2 = New Form2() fc.MdiParent = Me fc.Show()

11-4 建立多文件介面的應用程式- 取得擁有焦點的子MDI表單物件 在父MDI表單物件可以使用ActiveMdiChild屬性來取得是哪一個表單物件,如下所示: Dim active As Form2 = Me.ActiveMdiChild If (Not active Is Nothing) Then ……….. End If

11-4 建立多文件介面的應用程式- 子MDI表單取得父MDI表單物件 反過來看,對於作用中的子MDI表單,如果需要呼叫父MDI表單的方法,我們可以使用子MDI表單的MdiParent屬性取得父MDI表單,如下所示: Dim parent As Form1 = Me.MdiParent parent.Search(txtSearch.Text) 上述程式碼取得父MDI表單Form1後,呼叫Search()方法。

11-4 建立多文件介面的應用程式- 排列子MDI表單 在父MDI表單可能開啟多個子MDI表單,此時在父MDI表單的功能表可以新增選項,以便切換不同子表單的排列方式,如下所示: Me.LayoutMdi(MdiLayout.Cascade) 上述程式碼使用LayoutMdi()方法排列子表單,其參數是排列方式的MdiLayout列舉常數。

11-4 建立多文件介面的應用程式- MdiLayout列舉常數

Clipboard.SetDataObject( _ active.txtInput.SelectedText) 11-4 建立多文件介面的應用程式- 貼上剪貼簿 剪貼簿功能可以將子MDI表單的文字方塊內容剪下,然後貼到其他子MDI表單上。Visual Basic剪貼簿處理是Clipboard類別,可以使用SetDataObject()方法存入剪貼簿,如下所示: Clipboard.SetDataObject( _ active.txtInput.SelectedText) 上述程式碼將文字方塊選取的文字內容貼上剪貼簿。

至於取出剪貼簿內容物件是使用GetDataObject()方法,如下所示: 11-4 建立多文件介面的應用程式- 貼上剪貼簿 至於取出剪貼簿內容物件是使用GetDataObject()方法,如下所示: Dim ido As IDataObject = Clipboard.GetDataObject() 程式碼取出剪貼簿內容的IDataObject物件後,我們可以使用If條件檢查物件內容的資料格式,如下所示: If ido.GetDataPresent(DataFormats.Text) Then active.txtInput.SelectedText = _ ido.GetData(DataFormats.Text).ToString() End If

11-4 建立多文件介面的應用程式- Visual Basic專案 Visual Basic專案:Ch11-4 在Windows應用程式建立多文件介面的記事本,除了能夠開啟多個編輯視窗外,還新增文字內容剪下和貼上的剪貼簿功能,如下圖所示:

11-5 執行外部應用程式-說明 Windows作業系統是一種多工的作業系統,可以同時執行多個應用程式,例如:同時執行瀏覽程式Internet Explorer瀏覽網頁或記事本編輯文件。 同樣的,使用Visual Basic建立的應用程式,如果需要,可以在Visual Basic應用程式呼叫其他應用程式,以便同時執行相關工具程式,例如:記事本或小畫家。

11-5 執行外部應用程式-Shell()函數 在Visual Basic程式執行外部應用程式的函數是Shell()函數,如下所示: progID = Shell("C:\Windows\notepad.exe", _ AppWinStyle.NormalFocus) 上述Shell()函數的第1個參數是應用程式的完整路徑字串,可以省略執行檔的附檔名.exe,第2個參數是開啟應用程式視窗的樣式,這是AppWinStyle列舉常數。

11-5 執行外部應用程式- AppWinStyle列舉常數

11-5 執行外部應用程式- Visual Basic專案 Visual Basic專案:Ch11-5 在Windows應用程式建立快速啟動列,可以快速執行所需的應用程式,程式是使用Shell()函數呼叫其他應用程式,設定TopMost屬性,讓程式顯示在最上層,如下圖所示:

End