每個C#視窗應用程式在預設時都會建立一個表單,名稱為Form1。一個空表單的外觀如下:
在這個表單上,可以加入許多「控制項」。控制項的功用有二,一是讓使用者藉由操作此控制項來對程式輸入命令,二是在控制項中輸出某些資訊讓使用者知曉。
一、表單的設計方法
※註(重要!):在一份表單的設計的程式碼檔案中,關鍵字:this,代表該程式碼檔案所對應到的表單本身。
1. 表單的常用成員如下(本分類依照屬性事窗中的分類):
(1) 外觀:
※ 表單名稱.ForeColor:一個Color物件。表示表單上的「前景色」,也就是所有文字的顏色。
※ 表單名稱.BackColor:一個Color物件,表示表單背景顏色。
※ 表單名稱.BackgroundImage:一個Image物件,表示表單背景圖案。
※ 表單名稱.BackgroundImageLayout:一個ImageLayout物件,表示表單背景圖案的排列方式。ImageLayout物件可用以下方法來取得:
ImageLayout.Tile:表示要重覆顯示圖片。這是預設值。
ImageLayout.None:表示不重覆顯示圖片,圖片靠表單左上角排列。
ImageLayout.Center:表示不重覆顯示圖片,圖片靠表單中央排列。
ImageLayout.Stretch:表示不重覆顯示圖片,且圖片大小會被調整成與表單大小相同,因此可能改變圖片原本的長寬比例。
ImageLayout.Zoom:表示不重覆顯示圖片,且圖片大小會依表單放大而防大、依表單縮小而縮小,但不會改變圖片原本的長寬比例。
※ 表單名稱.Cursor:一個Cursors物件。表示當游標移到表單上時,游標的圖案。Cursors物件可用以下方法來取得:
Cursors.游標圖案名稱
其中,游標圖案名稱的數量很多,在此不詳述。讀者可以到「屬性面板」按下屬性按鈕
後,至 cursor屬性右方欄位設定要怎樣的游標圖案。
※ Font:一個Font物件。表示表單上文字的字型。
※ Text:一個string。表單的標題文字。
(2) 行為:
※ 表單名稱.Enabled:一個bool。若為true,表示表單接受使用者的指令。若為false則表單不接受只用者指令。預設是true。
(3) 配置:
※ 表單名稱.AutoScroll:一個bool。若為true,表示當表單中內容溢出表單時,會自動產生捲軸;若為false則不會。預設是false。
※ 表單名稱.AutoSizeMode:一個AutoSizeMode物件,表示使用者是否能手動調整表單尺寸。AutoSizeMode物件可用以下方法來取得:
AutoSizeMode.GrowOnly:表示使用者可以手動調整表單尺寸。這是預設值。
AutoSizeMode.GrowAndShrink:表示使用者不能手動調整表單尺寸。
※ 表單名稱.Location:一個Point物件,表示該表單的座標位置。Point物件的建立方法是:
變數名稱 = new Point(X,Y);
其中X、Y均為int,且是非負整數,各代表該表單的X座標值與Y座標值。
※ 表單名稱.Size:一個Size物件,表示該表單的尺寸。Size物件的建立方法是:
變數名稱 = new Size(W,H);
其中W、H均為int,且是非負整數,各代表該表單的橫向寬與縱向高。
※ 表單名稱.MaximumSize:一個Size物件,表示該表單所允許的最大尺寸。
※ 表單名稱.MinimumSize:一個Size物件,表示該表單所允許的最小尺寸。
※ 表單名稱.StartPosition:一個FormStartPosition物件,代表表單的初始位置。 FormStartPosition物件可用以下方法取得:
FormStartPosition.CenterScreen:代表表單的初始位置在螢幕正中央。
FormStartPosition.CenterParent:代表表單的初始位置在其父視窗的正中央。
FormStartPosition.WindowsDefaultLocation:代表表單的初始位置由Windows作業系統自行設置。這是預設值。
(※)要注意,若要以程式碼的方式設定StartPosition成員,程式碼須寫在:
public 表單名稱()
{}
的兩個大括號之間,否則看不出效果。
※ 表單名稱.WindowState:一個FormWindowState物件,代表表單的初始狀態。FormWindowState物件可用以下方法取得:
FormWindowState.Normal:表單的初始狀態為一般狀態,這是預設值。
FormWindowState.Maximized:表單的初始狀態為視窗最大化狀態。
FormWindowState.Minimized:表單的初始狀態為視窗最小化狀態。
(※)要注意,若要以程式碼的方式設定WindowState成員,程式碼須寫在:
public 表單名稱()
{}
的兩個大括號之間,否則看不出效果。
(4) 視窗樣式:
※ 表單名稱.ControlBox:一個bool。若為true表示要在表單的標題列顯示
這三個按鈕,若為false則否。預設是true。
※ 表單名稱.Opacity:一個double,值的範圍為0~1。表示表單的「不透明度」。其值越大表示越不透明,越小表示越透明。
2. 表單的常用成員函式:
※ 表單名稱.Show():無回傳值。可開啟該表單。開啟之後,仍可對其父表單進行操作。
※ 表單名稱.ShowDialog():回傳一個DialogResult物件(在此不談之)。可強制開啟該表單。不過開啟之後,無法對其父表單進行操作。如在A表單中,按下某個按鍵而使B表單被以ShowDialog()的方式開啟,則此時只能操作B表單、不能操作A表單了。
※ 表單名稱.Close():無回傳值。可關閉該表單。一個表單被關閉之後,其原先在記憶體中的容量就會被釋放,故不能夠再用Show()方法開啟,但還是能被用ShowDialog()方法開啟。
※ 表單名稱.Hide():無回傳值。可隱藏該表單。一個表單被隱藏之後,其原先在記憶體中的容量不會被釋放,還能夠被用Show()、ShowDialog()這兩個方法開啟。
3.表單常用且專用的事件:
任何事件(包括表單事件、控制項事件),都有一個「事件函式」,用以給使用者來撰寫事件發生時的程式碼。事件函式的預設格式如下:
private void 控制項名稱_事件名稱(object sender, 事件參數類別 e)
{
}
而對任何表單事件來說,上述格式中的控制項名稱,則一律變為表單名稱。
以下介紹表單常用且專用的事件:
※ Load事件:在表單被載入至記憶體中時(也就是使用者呼叫此表單時)會觸發。比如,建立表單應用程式後會隨之出現的程式碼:
private void Form1_Load(object sender, EventArgs e)
{
}
其大括號內就是擺放Load事件觸發後要執行的程式碼。
其事件名稱是Load,其事件參數類別是EventArgs。而EventArgs類別並不具有類別成員。
※ Move事件:在表單被使用者移動時會觸發。其事件名稱是Move,其事件參數類別是EventArgs。而EventArgs類別並不具有類別成員。
※ Resize事件:在表單被使用者調整大小時會觸發。其事件名稱是Resize,其事件參數類別是EventArgs。而EventArgs類別並不具有類別成員。
※ FormClosing事件:在使用者下達關閉表單的命令之後、而表單正式關閉之前會觸發。其事件名稱是FormClosing,其事件參數類別是FormClosingEventArgs。而FormClosingEventArgs類別有成員如下:
FormClosingEventArgs類別物件名稱.Cancel:一個bool。預設為false。若設為true,表示要取消關閉表單的命令。
留言列表