C#簡易教學(03)-視窗開關範例


C#簡易教學(03)-視窗開關範例
前言:
部落格的簡介中要分享的有C#這一項,但說來慚愧,非常久沒有更新了。畢竟當初修完課程,就很一陣子沒碰了,忙於論文就很難分配到其他與論文沒相關的文章產出。(而且相較於精實管理、製造管理這兩個TopicC#很多人寫,久而久之就沒更新了)
而最近因為工作關係,非常頻繁使用,就來回顧一些當初剛學會碰到的問題:如何開關視窗。如果對老手來說應該駕輕就熟,但對於新手來說可能還是會不太明白,就寫來分享給新手們。

正文:
今天要講的主題是Windows forms的開關。學C#的很大一個重點,就是提供了一個非常簡易的視窗程式建立環境,也因此在成大資工中有一門名為視窗程式設計的課程,就是以C#為主。在Visual Studio下,要建立一個Windows form只需要,New project>Templates>Visual C#>Windows Forms Application。這樣我們就有一個視窗程式了,再透過工具箱(Toolbox)提供的工具,很快就能用拖拉方式建構出一個算美觀的程式。
然而,單一一個視窗絕對是不足以我們去使用,因此我們需要學會操控視窗的切換顯示、開關(不是用滑鼠關閉,而是用一個事件關閉),這邊就舉一個簡單的例子。
要達成這個目標,我們就需要有兩個視窗,因此,我們這裡建立一個新的視窗。建立方法很簡單,在當前的專案名稱按下右鍵>選擇添加(Add)>Windows Form,這樣就可以在當前的專案下有多個視窗。
圖一 在專案中,添加新視窗的方法

我將視窗重新命名,一個名為MainForm,一個叫做SubForm,前者就是一開始專案預設要開啟的主視窗,後者是我們剛剛建立的視窗。我預計在第一個視窗新增一個小按鈕,在他的MouseEnter事件中寫開啟子視窗,在按鈕的MouseLeave事件我們寫關閉子視窗,完成今日的教學範例。達成當滑鼠游標進入那個按鈕後,第二個視窗(SubForm)會開啟,而滑鼠游標離開時第二個視窗就會被關閉。
圖二 範例目前擁有的視窗

Q:如何新增事件跟對應的Function?
A:選擇物件後,在他的屬性(Properties)找到一個閃電的標示點擊後就可以看到我們可以使用的事件,並在事件中打入我們要觸發事件要委派的Function。就會自動建立Function
圖三 如何增添處發事件與委派方法
圖四 如何增添處發事件與委派方法

Q:如何呼叫子視窗顯示
A:宣告一個子視窗物件,並將他指定給我們事先宣告的全域變數(變數名:ControlForm),以利於對子視窗進行操控。而要顯示子視窗只要呼叫Show()即可。

Q:如何讓子視窗關閉且釋出空間
A:呼叫Close()再來呼叫Dispose()

程式碼大概是以下這個樣子:


這樣我們就可以完成了一個滑鼠移動移入就可以關閉了(小聲說:讓人突然想起九品芝麻官的經典片段,ㄟ,我又進來啦,ㄟ,我又出去拉,打我阿,笨蛋)

結語:
這個教學應該非常非常的簡易,但是又很實用,可以進行很多視窗控制的變化,像範例這樣的操作其實也很像是網頁內會有的顯示方式,對使用者來說應該也算挺方便的顯示機制(畢竟關閉不用特地點選子視窗)
若此教學對您有幫助,歡迎留言讓我知道,謝謝。

留言