1. 控件
在使用Windows窗體時,就是在使用System.Windows.Forms命名空間。
.NET中的大多數控件都派生于System.Windows.Form.Control類。這個類定義了控件的基本功能。還有一些控件稱為定制或用戶控件,派生于另一個類System.Windows.Forms.UserControl。這個類本身派生于Control類,提供了創建控件所需要的功能。另外,用于設計Web用戶界面的控件派生于另一個類System.Web.UI.Control。

1.1 屬性
所有控件都有許多屬性,用于處理控件的操作。
下面是Control類最常見的屬性:
Anchor:指定當控件的容器的大小發生變化時,該控件如何響應。
BackColor:背景色
Bottom:指定控件的底部距離窗口的頂部有多遠。這與指定控件的高度不同
Dock:可以使控件停靠在窗口的邊界上
Enabled:把Enable設為true通常表示該控件可以接收用戶的輸入。把Enable設置為false通常表示不能接收用戶的輸入
ForeColor:前景色
Height:控件從底部到頂部的距離(是控件本身的距離)
Left:控件的左邊界到窗口左邊界的距離
Name:控件的名稱,這個名稱可以在代碼中用于引用該控件
Parent:控件的父控件
Right:控件的右邊界到窗口右邊界的距離
TabIndex:控件在容器中的標簽順序號
TabStop:指定控件是否可以用Tab鍵訪問
Tag:這個值通常不由控件本身使用,而是在控件中存儲該控件的信息。當通過Windows Form設計器給這個屬性賦值時,就只能給它賦一個字符串值
Top:控件的頂部距離窗口頂部的距離
Visible:指定控件是否在運行期間可見
Width:控件的寬度
另外,.NET的所有內部控件都使用Text屬性來設置顯示的文本。
1.2 控件的定位、停靠和對齊
在Visual Studio 2005中,窗體設計器默認改為使用柵格狀的界面,并使用捕捉線來定位控件,使控件整齊地排列在界面上。
在窗體設計中,Anchor和Dock屬性特別有用。
Anchor屬性可以指定如果控件重新設置了大小,就根據控件的邊界鎖定它,或者其大小不變,當根據窗口的邊界來錨定它的位置。
Dock屬性用于指定控件應停放在容器的邊框上。如果用戶重新設置了窗口的大小,該控件將繼續停放在窗口的邊框上。
1.3 事件
下面所列的是Control類所定義的最常見的事件:
Click:在單擊控件時引發。在某些情況下,這個事件也會在用戶按下Enter鍵時引發。
DoubleClick:在雙擊控件時引發。處理某些控件上的Click事件,例如Button控件,表示永遠不會調用DoubleClick事件。
DragDrop:在完成拖放操作時引發。換言之,當一個對象被拖到控件上,然后用戶釋放鼠標按鈕后,引發該事件。
DragEnter:在被拖動的對象進入控件的邊界時引發。
DragLeave:在被拖動的對象移出控件的邊界時引發。
DragOver:在被拖動的對象放在控件上時引發。
KeyDown:當控件有焦點時,按下一個鍵時引發該事件,這個事件總是在KeyPress和KeyUp之前發生。
KeyPress:當控件有焦點時,按下一個鍵發生該事件,這個事件總是在KeyDown之后、KeyUp之前引發。KeyDown和KeyPress的區別是KeyDown傳送被按下的鍵的鍵盤碼,而KeyPress傳送被按下鍵的char值。
KeyUp:當控件有焦點時,釋放一個鍵時發生該事件,這個事件總是在KeyDown和KeyPress之后引發。
GotFocus:在控件接收焦點時引發。不要用這個事件執行控件的有效性驗證,而應使用Validating和Validated。
LostFocus:在控件丟失焦點時引發。不要用這個事件執行控件的有效性驗證,而應使用Validating和Validated。
MouseDown:在鼠標指針指向一個控件,且鼠標按鈕被按下時引發。這與Click事件不同,因為在按鈕被按下之后,且未被釋放之前引發MouseDown。
MouseMove:在鼠標劃過控件時引發。
MouseUp:在鼠標指針位于控件上,且鼠標按鈕被釋放時引發。
Paint:繪制控件時引發。
Validated:當控件的CausesValidation屬性設置為true,且該控件獲得焦點時,引發該事件。它在Validating事件之后發生,表示有效性驗證已經完成。
Validating:當控件的CausesValidation屬性設置為true,且該控件獲得焦點時,引發該事件。需要注意的是,被驗證有效性的控件是失去焦點的控件,而不是獲得焦點的控件。
待續.................................