C#簡易教學(03)-視窗開關範例
前言:
部落格的簡介中要分享的有C#這一項,但說來慚愧,非常久沒有更新了。畢竟當初修完課程,就很一陣子沒碰了,忙於論文就很難分配到其他與論文沒相關的文章產出。(而且相較於精實管理、製造管理這兩個Topic,C#很多人寫,久而久之就沒更新了)
而最近因為工作關係,非常頻繁使用,就來回顧一些當初剛學會碰到的問題:如何開關視窗。如果對老手來說應該駕輕就熟,但對於新手來說可能還是會不太明白,就寫來分享給新手們。
正文:
今天要講的主題是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()。
程式碼大概是以下這個樣子:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.ComponentModel; | |
using System.Data; | |
using System.Drawing; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
using System.Windows.Forms; | |
namespace WinodosFormCloseOpen | |
{ | |
public partial class MainForm : Form | |
{ | |
public Form ControlForm; | |
public MainForm() | |
{ | |
InitializeComponent(); | |
} | |
private void MouseEnter_OpenSub(object sender, EventArgs e) | |
{ | |
ControlForm = new SubForm(); | |
ControlForm.Show(); | |
} | |
private void MouseLeave_CloseSub(object sender, EventArgs e) | |
{ | |
ControlForm.Close(); | |
ControlForm.Dispose(); | |
} | |
} | |
} |
這樣我們就可以完成了一個滑鼠移動移入就可以關閉了(小聲說:讓人突然想起九品芝麻官的經典片段,ㄟ,我又進來啦,ㄟ,我又出去拉,打我阿,笨蛋)
結語:
這個教學應該非常非常的簡易,但是又很實用,可以進行很多視窗控制的變化,像範例這樣的操作其實也很像是網頁內會有的顯示方式,對使用者來說應該也算挺方便的顯示機制(畢竟關閉不用特地點選子視窗)。
若此教學對您有幫助,歡迎留言讓我知道,謝謝。
留言
張貼留言