C#控件常用設計整理大全

1、常用屬性 
(1)Name屬性:用來獲取或設置窗體的名稱,在應用程序中可通過Name屬性來引用窗體。 

(2)WindowState屬性:用來獲取或設置窗體的窗口狀態。 

取值有三種: Normal (窗體正常顯示)、 Minimized(窗體以最小化形式顯示)和 Maximized(窗體以最大化形式顯示)。 

(3)StartPosition屬性:用來獲取或設置運行時窗體的起始位置。
(4)Text屬性:該屬性是一個字符串屬性,用來設置或返回在窗口標題欄中顯示的文字。 
(5)Width屬性:用來獲取或設置窗體的寬度。 
(6)Height屬性:用來獲取或設置窗體的高度。 
(7)Left屬性:用來獲取或設置窗體的左邊緣的x座標(以像素爲單位)。 
(8)Top屬性:用來獲取或設置窗體的上邊緣的y座標(以像素爲單位)。 
(9)ControlBox屬性:用來獲取或設置一個值,該值指示在該窗體的標題欄中是否顯示控制框。值爲true時將顯示控制框,值爲false時不顯示控制框。 
(10)MaximizeBox屬性:用來獲取或設置一個值,該值指示是否在窗體的標題欄中顯示最大化按鈕。值爲 true時顯示最大化按鈕,值爲false時不顯示最大化按鈕。 
(11)MinimizeBox 屬性:用來獲取或設置一個值,該值指示是否在窗體的標題欄中顯示最小化按鈕。值爲 true時顯示最小化按鈕,值爲false時不顯示最小化按鈕。 
(12)AcceptButton 屬性:該屬性用來獲取或設置一個值,該值是一個按鈕的名稱,當按 Enter 鍵時就相當於單擊了窗體上的該按鈕。 
(13)CancelButton 屬性:該屬性用來獲取或設置一個值,該值是一個按鈕的名稱,當按 Esc 鍵時就相當於單擊了窗體上的該按鈕。 









(14)Modal 屬性:該屬性用來設置窗體是否爲有模式顯示窗體。如果有模式地顯示該窗體,該屬性值爲true;否則爲 false。

當有模式地顯示窗體時,只能對模式窗體上的對象進行輸入。必須隱藏或關閉模式窗體(通常是響應某個用戶操作),然後才能對另一窗體進行輸入。

有模式顯示的窗體通常用做應用程序中的對話框。 

(15)ActiveControl屬性:用來獲取或設置容器控件中的活動控件。窗體也是一種容器控件。 
(16)ActiveMdiChild屬性:用來獲取多文檔界面(MDI)的當前活動子窗口。 

(17)AutoScroll 屬性:用來獲取或設置一個值,該值指示窗體是否實現自動滾動。

如果此屬性值設置爲true,則當任何控件位於窗體工作區之外時,會在該窗體上顯示滾動條。

另外,當自動滾動打開時,窗體的工作區自動滾動,以使具有輸入焦點的控件可見。 

(18)BackColor屬性:用來獲取或設置窗體的背景色。 
(19)BackgroundImage屬性:用來獲取或設置窗體的背景圖像。 
(20)Enabled 屬性:用來獲取或設置一個值,該值指示控件是否可以對用戶交互作出響應。如果控件可以對用戶交互作出響應,則爲 true;否則爲false。默認值爲true。 
(21)Font屬性:用來獲取或設置控件顯示的文本的字體。 
(22)ForeColor屬性:用來獲取或設置控件的前景色。 
(23)IsMdiChild屬性:獲取一個值,該值指示該窗體是否爲多文檔界面(MDI)子窗體。值爲 true時,是子窗體,值爲false時,不是子窗體。 




(24)IsMdiContainer屬性:獲取或設置一個值,該值指示窗體是否爲多文檔界面(MDI)中的子窗體的容器。

值爲true時,是子窗體的容器,值爲false時,不是子窗體的容器。 

(25)KeyPreview屬性:用來獲取或設置一個值,該值指示在將按鍵事件傳遞到具有焦點的控件前,窗體是否將接收該事件。

值爲true時,窗體將接收按鍵事件,值爲false時,窗體不接收按鍵事件。 

(26)MdiChildren屬性:數組屬性。數組中的每個元素表示以此窗體作爲父級的多文檔界面(MDI)子窗體。 
(27)MdiParent屬性:用來獲取或設置此窗體的當前多文檔界面(MDI)父窗體。 
(28)ShowInTaskbar屬性:用來獲取或設置一個值,該值指示是否在Windows任務欄中顯示窗體。 
(29)Visible屬性:用於獲取或設置一個值,該值指示是否顯示該窗體或控件。值爲true 時顯示窗體或控件,爲 false時不顯示。 


(30)Capture屬性:如果該屬性值爲true,則鼠標就會被限定只由此控件響應,不管鼠標是否在此控件的範圍內。 

 

2、常用方法 
下面介紹一些窗體的最常用方法。 
(1)Show方法:該方法的作用是讓窗體顯示出來,其調用格式爲: 窗體名.Show(); 其中窗體名是要顯示的窗體名稱。 
(2)Hide方法:該方法的作用是把窗體隱藏出來,其調用格式爲: 窗體名.Hide(); 其中窗體名是要隱藏的窗體名稱。 
(3)Refresh方法:該方法的作用是刷新並重畫窗體,其調用格式爲: 窗體名.Refresh(); 其中窗體名是要刷新的窗體名稱。 
(4)Activate方法:該方法的作用是激活窗體並給予它焦點。其調用格式爲: 窗體名.Activate(); 其中窗體名是要激活的窗體名稱。 
(5)Close方法:該方法的作用是關閉窗體。其調用格式爲: 窗體名.Close(); 其中窗體名是要關閉的窗體名稱。 





(6)ShowDialog方法:該方法的作用是將窗體顯示爲模式對話框。其調用格式爲: 窗體名.ShowDialog(); 

 

3.常用事件 
(1)Load事件:該事件在窗體加載到內存時發生,即在第一次顯示窗體前發生。 
(2)Activated事件:該事件在窗體激活時發生。 
(3)Deactivate事件:該事件在窗體失去焦點成爲不活動窗體時發生。 
(4)Resize事件:該事件在改變窗體大小時發生。 
(5)Paint事件:該事件在重繪窗體時發生。 
(6)Click事件:該事件在用戶單擊窗體時發生。 
(7)DoubleClick事件:該事件在用戶雙擊窗體時發生。 
(8)Closed事件:該事件在關閉窗體時發生。 

文本框類控件 
2、Label 控件 
1、常用屬性: 
(1)Text屬性:用來設置或返回標籤控件中顯示的文本信息。 












(2)AutoSize 屬性:用來獲取或設置一個值,該值指示是否自動調整控件的大小以完整顯示其內容。

取值爲 true時,控件將自動調整到剛好能容納文本時的大小,取值爲false時,控件的大小爲設計時的大小。默認值爲false。 

(3)Anchor 屬性:用來確定此控件與其容器控件的固定關係的。

所謂容器控件指的是這樣一種情況:往往在控件之中還有一個控件,例如最典型的就是窗體控件中會包含很多的控件,像標籤控件、文本框等。

這時稱包含控件的控件爲容器控件或父控件,而父控件稱爲子控件。這時將遇到一個問題,即子控件與父控件的位置關係問題,即當父控件的位置、大小變化時,子控件按照什麼樣的原則改變其位置、大小。Anchor屬性就規定了這個原則。 對於 Anchor 屬性,可以設定 Top、Bottom、Right、Left 中的任意幾種,設置的方法是在屬性窗口中單擊Anchor屬性右邊的箭頭,將會出現如圖 9-6 的窗口,通過它可設置 Anchor 屬性值。圖 9-6 中選中變黑的方位即爲設定的方位控制,即圖中所示的爲 Left、Right、Bottom。此時,如果父窗口變化,子窗口將保證其左邊緣與容器左邊的距離、上邊緣與容器上邊的距離、底邊與容器底邊的距離等不變,
效果如圖9-7 所示。 可見隨着窗體的大小變化, Label控件也會隨着變 。 而不變的則是Archor中所規定的邊緣與相應的父控件邊緣的距離。 
(4)BackColor屬性:
用來獲取或設置控件的背景色。當該屬性值設置爲 Color.Transparent 時,標籤將透明顯示,即背景色不再顯示出來。 


(5)BorderStyle 屬性:用來設置或返回邊框。

有三種選擇:BorderStyle.None 爲無邊框(默認),BorderStyle.FixedSingle 爲固定單邊框,BorderStyle.Fixed3D 爲三維邊框。

(6)TabIndex屬性:用來設置或返回對象的Tab鍵順序。 
(7)Enabled 屬性:用來設置或返回控件的狀態。值爲 true 時允許使用控件,值爲 false 時禁止使用控件,此時標籤呈暗淡色,一般在代碼中設置。圖9-8 邊框效果圖 
另外,標籤還具有Visible、ForeColor、Font等屬性,具體含義請參考窗體的相應屬性。 


3、TextBox 控件 
1、主要屬性: 





(1)Text屬性:Text屬性是文本框最重要的屬性,因爲要顯示的文本就包含在Text屬性中。默認情況下,最多可在一個文本框中輸入2048個字符。

如果將MultiLine屬性設置爲true,則最多可輸入32KB 的文本。Text屬性可以在設計時使用【屬性】窗口設置,也可以在運行時用代碼設置或者通過用戶輸入來設置。可以在運行時通過讀取Text屬性來獲得文本框的當前內容。 

(2)MaxLength 屬性:用來設置文本框允許輸入字符的最大長度,該屬性值爲 0 時,不限制輸入的字符數。 

(3)MultiLine 屬性:用來設置文本框中的文本是否可以輸入多行並以多行顯示。

值爲 true 時,允許多行顯示。值爲false時不允許多行顯示,一旦文本超過文本框寬度時,超過部分不顯示。 

(4)HideSelection屬性:用來決定當焦點離開文本框後,選中的文本是否還以選中的方式顯示,值爲true,則不以選中的方式顯示,值爲 false將依舊以選中的方式顯示。 
(5)ReadOnly屬性:用來獲取或設置一個值,該值指示文本框中的文本是否爲只讀。值爲 true時爲只讀,值爲 false時可讀可寫。 
(6)PasswordChar 屬性:是一個字符串類型,允許設置一個字符,運行程序時,將輸入到 Text 的內容全部顯示爲該屬性值,從而起到保密作用,通常用來輸入口令或密碼。 

(7) ScrollBars屬性: 用來設置滾動條模式, 有四種選擇: 

ScrollBars.None (無滾動條), ScrollBars.Horizontal(水平滾動條),ScrollBars.Vertical(垂直滾動條),ScrollBars.Both(水平和垂直滾動條)。 

注意:只有當MultiLine屬性爲true時,該屬性值纔有效。在WordWrap屬性值爲true時, 水平滾動條將不起作用 

(8)SelectionLength屬性:用來獲取或設置文本框中選定的字符數。只能在代碼中使用,值爲0 時,表示未選中任何字符。 
(9)SelectionStart屬性:用來獲取或設置文本框中選定的文本起始點。只能在代碼中使用,第一個字符的位置爲0,第二個字符的位置爲1,依此類推。 
(10)SelectedText 屬性:用來獲取或設置一個字符串,該字符串指示控件中當前選定的文本。只能在代碼中使用。 
(11)Lines屬性:該屬性是一個數組屬性,用來獲取或設置文本框控件中的文本行。即文本框中的每一行存放在 Lines數組的一個元素中。 


(12)Modified屬性:用來獲取或設置一個值,該值指示自創建文本框控件或上次設置該控件的內容後,用戶是否修改了該控件的內容。

值爲true表示修改過,值爲 false表示沒有修改過。 

(13)TextLength屬性:用來獲取控件中文本的長度。 

(14)WordWrap屬性:用來指示多行文本框控件在輸入的字符超過一行寬度時是否自動換行到下一行的開始。

值爲 true,表示自動換到下一行的開始,值爲false表示不自動換到下一行的開始。 

 

2、常用方法: 

(1)AppendText方法:把一個字符串添加到文件框中文本的後面,調用的一般格式如下: 

文本框對象.AppendText(str) 參數 str是要添加的字符串。 

(2)Clear方法:從文本框控件中清除所有文本。調用的一般格式如下: 
文本框對象.Clear()該方法無參數。 
(3)Focus方法:是爲文本框設置焦點。如果焦點設置成功,值爲 true,否則爲false。調用的一般格式如下: 
文本框對象.Focus()該方法無參數。 
(4)Copy方法:將文本框中的當前選定內容複製到剪貼板上。調用的一般格式如下: 
文本框對象.Copy()該方法無參數。 
(5)Cut方法:將文本框中的當前選定內容移動到剪貼板上。調用的一般格式如下: 
文本框對象.Cut()該方法無參數。 
(6)Paste方法:用剪貼板的內容替換文本框中的當前選定內容。調用的一般格式如下: 
文本框對象.Paste()該方法無參數。 
(7)Undo 方法:撤銷文本框中的上一個編輯操作。調用的一般格式如下: 
文本框對象.Undo()該方法無參數。 










(8)ClearUndo方法:從該文本框的撤銷緩衝區中清除關於最近操作的信息,根據應用 程序的狀態,可以使用此方法防止重複執行撤銷操作。

調用的一般格式如下: 

文本框對象.ClearUndo()該方法無參數。 
(9)Select方法:用來在文本框中設置選定文本。調用的一般格式如下: 
文本框對象.Select(start,length) 
該方法有兩個參數,第一個參數start用來設定文本框中當前選定文本的第一個字符的位置,第二個參數length用來設定要選擇的字符數。 
(10)SelectAll方法:用來選定文本框中的所有文本。調用的一般格式如下: 



文本框對象.SelectAll()該方法無參數。 

 

3、常用事件: 
(1)GotFocus事件:該事件在文本框接收焦點時發生。 
(2)LostFocus事件:該事件在文本框失去焦點時發生。 
(3)TextChanged事件:該事件在Text屬性值更改時發生。無論是通過編程修改還是用戶交互更改文本框的 Text屬性值,均會引發此事件。 
 



4、RichTextBox控件 

RichTextBox是一種既可以輸入文本、 又可以編輯文本的文字處理控件, 與TextBox控件相比, RichTextBox控件的文字處理功能更加豐富, 不僅可以設定文字的顏色、 字體, 還具有字符串檢索功能。 另外, RichTextBox控件還可以打開、編輯和存儲.rtf格式文件、ASCII文本格式文件及Unicode編碼格式的文件。 

 

1、常用屬性 

上面介紹的 TextBox 控件所具有的屬性,RichTextBox 控件基本上都具有,除此之外,該控件還具有一些其他屬性。

 

(1)RightMargin屬性:用來設置或獲取右側空白的大小,單位是像素。通過該屬性可以設置右側空白,如希望右側空白爲50像素,可使用如下語句: RichTextBox1.RightMargin=RichTextBox1.Width-50; 
(2)Rtf屬性:用來獲取或設置RichTextBox控件中的文本,包括所有RTF格式代碼。可以使用此屬性將RTF格式文本放到控件中以進行顯示,或提取控件中的RTF格式文本。此屬性通常用於在RichTextBox控件和其他RTF源(如 MicrosoftWord或 Windows寫字板)之間交換信息。 

(3)SelectedRtf 屬性:用來獲取或設置控件中當前選定的 RTF 格式的格式文本。

此屬性使用戶得以獲取控件中的選定文本,包括RTF格式代碼。如果當前未選定任何文本,給該屬性賦值將把所賦的文本插入到插入點處。

如果選定了文本,則給該屬性所賦的文本值將替換掉選定文本。 

(4)SelectionColor屬性:用來獲取或設置當前選定文本或插入點處的文本顏色。 

(5)SelectionFont屬性:用來獲取或設置當前選定文本或插入點處的字體。 

 

2、常用方法 

前面介紹的 TextBox 控件所具有的方法,RichTextBox 控件基本上都具有,除此之外,該控件還具有一些其他方法。 

 

(1)Redo方法:用來重做上次被撤銷的操作。調用的一般格式如下: 
RichTextBox對象.Redo() 該方法無參數。 
(2)Find方法:用來從RichTextBox控件中查找指定的字符串。經常使用的調用格式如下: 
[格式1]: RichTextBox對象.Find(str) 


[功能]:在指定的“RichTextBox”控件中查找文本,並返回搜索文本的第一個字符在控件內的位置。如果未找到搜索字符串或者str參數指定的搜索字符串爲空,則返回值爲1。 

 

[格式2]: RichTextBox對象.Find(str,RichTextBoxFinds) 
[功能]:在“RichTextBox 對象”指定的文本框中搜索 str 參數中指定的文本,並返回文本的第一個字符在控件內的位置。如果返回負值,則未找到所搜索的文本字符串。還可以使用此方法搜索特定格式的文本。參數RichTextBoxFinds指定如何在控件中執行文本搜索,其取值及其含義如表9-4 所示。 

[格式3]: RichTextBox對象.Find(str,start,RichTextBoxFinds) 


[功能]:這裏Find方法與前面的格式2 基本類似,不同的只是通過設置控件文本內的搜索起始位置來縮小文本搜索範圍,start參數表示開始搜索的位置。此功能使用戶得以避開可能已搜索過的文本或已經知道不包含要搜索的特定文本的文本。如果在options參數中指定了RichTextBoxFinds.Reverse值,則 start參數的值將指示反向搜索結束的位置,因爲搜索是從文檔底部開始的。 

 

(3)SaveFile方法:用來把RichTextBox中的信息保存到指定的文件中,調用格式有以下三種。 
[格式1]: RichTextBox對象名.SaveFile(文件名); 

[功能]:將 RichTextBox控件中的內容保存爲RTF格式文件中。

 

[格式2]: RichTextBox對象名.SaveFile(文件名,文件類型); 

[功能]:將 RichTextBox控件中的內容保存爲“文件類型”指定的格式文件中。 

 

[格式3]: RichTextBox對象名.SaveFile(數據流,數據流類型); 
[功能]:將 RichTextBox控件中的內容保存爲“數據流類型”指定的數據流類型文件中。 

其中,文件類型或數據流類型的取值及含義如表9-5所示。 

 

(4)LoadFile方法:使用LoadFile方法可以將文本文件、RTF文件裝入RichTextBox控件。主要的調用格式有以下三種。 
[格式1]: RichTextBox對象名.LoadFile(文件名); 

[功能]:將RTF格式文件或標準ASCII文本文件加載到RichTextBox控件中。 

 

[格式2]: RichTextBox對象名.LoadFile(數據流,數據流類型); 

[功能]:將現有數據流的內容加載到RichTextBox控件中。 

 

[格式3]: RichTextBox對象名.LoadFile(文件名,文件類型); 
[功能]:將特定類型的文件加載到RichTextBox控件中。 
注意:文件類型和數據流格式見表9-5。 


5、NumericUpDown 控件 
【Windows 窗體】控件組中的 NumericUpDown 控件看起來像是一個文本框與一對用戶可單擊以調整值的箭頭的組合。可以通過單擊向上和向下按鈕、按向上和向下箭頭鍵來增大和減小數字,也可以直接輸入數字。單擊向上箭頭鍵時,值向最大值方向增加;單擊向下箭頭鍵時,值向最小值方向減少。該控件在工具箱中的圖標爲 。 





該控件的樣式如圖9-13所示。 

 

1、常用屬性: 
(1)DecimalPlaces:獲取或設置該控件中顯示的小數位數。 
(2)Hexadecimal:獲取或設置一個值,該值指示該控件是否以十六進制格式顯示所包含的值。 
(3)Increment:獲取或設置單擊向上或向下按鈕時,該控件遞增或遞減的值。 
(4)Maximum:獲取或設置該控件的最大值。 
(5)Minimum:獲取或設置該控件的最小值。 




(6)Value:獲取或設置該控件的當前值。 與 TextBox控件一樣,NumericUpDown控件的常用事件有:ValueChanged、GotFocus、LostFocus等。 

 

按鈕類控件 
6、Button 控件 

Button控件又稱按鈕控件,是 Windows應用程序中最常用的控件之一,通常用它來執行命令。如果按鈕具有焦點,就可以使用鼠標左鍵、Enter鍵或空格鍵觸發該按鈕的Click事件。通過設置窗體的AcceptButton或 CancelButton 屬性,無論該按鈕是否有焦點,都可以使用戶通過按 Enter 或 Esc 鍵來觸發按鈕的 Click事件。一般不使用 Button 控件的方法。Button 控件也具有許多如 Text、ForeColor 等的常規屬性,此處不再介紹,只介紹該控件有特色的屬性。以後介紹的控件也採用同樣的方法來處理。

 

1、常用屬性 
 

(1)DialogResult屬性:當使用ShowDialog方法顯示窗體時,可以使用該屬性設置當用戶按了該按鈕後,ShowDialog方法的返回值。

值有:OK、Cancel、Abort、Retry、Ignore、Yes、No等。 

(2)Image屬性:用來設置顯示在按鈕上的圖像。 
(3)FlatStyle屬性:用來設置按鈕的外觀。其取值及含義如表9-7 所示。 

2、常用事件: 
(1)Click事件:當用戶用鼠標左鍵單擊按鈕控件時,將發生該事件。 
(2)MouseDown事件:當用戶在按鈕控件上按下鼠標按鈕時,將發生該事件。 
(3)MouseUp事件:當用戶在按鈕控件上釋放鼠標按鈕時,將發生該事件。 





 

 

7、GroupBox 控件 
GroupBox控件又稱爲分組框,它在工具箱中的圖標是 。該控件常用於爲其他控件提供可識別的分組,其典型的用法之一就是給RadioButton控件分組。可以通過分組框的Text屬性爲分組框中的控件向用戶提供提示信息,如圖 9-14 所示。設計時,向GroupBox 控件中添加控件的方法有兩種:一是直接在分組框中繪製控件;二是把某一個已存在
的控件複製到剪貼板上,然後選中分組框,再執行粘貼操作即可。位於分組框中的所有控件隨着分組框的移動而一起移動,隨着分組框的刪除而全部刪除,分組框的Visible屬性和Enabled屬性也會影響到分組框中的所有控件。分組框的最常用的屬性是Text,一般用來給出分組提示。 


8、RadioButton控件 




RadioButton又稱單選按鈕,其在工具箱中的圖標爲 ,單選按鈕通常成組出現,用於提供兩個或多個互斥選項,即在一組單選鈕中只能選擇一個,如圖9-14所示。 

 

1、常用屬性: 
(1)Checked屬性:用來設置或返回單選按鈕是否被選中,選中時值爲true,沒有選中時值爲false。 

(2)AutoCheck 屬性:如果 AutoCheck 屬性被設置爲 true(默認),那麼當選擇該單選按鈕時,將自動清除該組中所有其他單選按鈕。

對一般用戶來說,不需改變該屬性,採用默認 值(true)即可。 

(3)Appearance 屬性:用來獲取或設置單選按鈕控件的外觀。當其取值爲 Appearance.Button 時,將使單選按鈕的外觀像命令按鈕一樣:當選定它時,它看似已被按下。

當取值爲 Appearance.Normal 時,就是默認的單選按鈕的外觀。 

(4)Text屬性:用來設置或返回單選按鈕控件內顯示的文本,該屬性也可以包含訪問鍵,即前面帶有“&”符號的字母,這樣用戶就可以通過同時按Alt鍵和訪問鍵來選中控件。 

 

2、常用事件: 

(1)Click事件:當單擊單選按鈕時,將把單選按鈕的Checked屬性值設置爲true,同時發生Click事件。 
(2)CheckedChanged事件:當Checked屬性值更改時,將觸發CheckedChanged事件。 



9、CheckBox 控件 
CheckBox控件的常用屬性如下。 
(1)TextAlign屬性:用來設置控件中文字的對齊方式,有9種選擇,如圖9-16 所示。 
從上到下、從左至右分別是:ContentAlignment.TopLeft、ContentAlignment.TopCenter、 ContentAlignment.TopRight、ContentAlignment.MiddleLeft、ContentAlignment.MiddleCenter、 ContentAlignment.MiddleRight、ContentAlignment.BottomLeft、ContentAlignment.BottomCenter 和ContentAlignment.BottomRight。該屬性的默認值爲ContentAlignment.MiddleLeft,即文字左對齊、居控件垂直方向中央。 









(2)ThreeState屬性:用來返回或設置複選框是否能表示三種狀態。

如果屬性值爲true時,表示可以表示三種狀態—選中、沒選中和中間態(CheckState.Checked、CheckState.Unchecked 和 CheckState.Indeterminate),屬性值爲false時,只能表示兩種狀態——選中和沒選中。 

(3)Checked屬性:用來設置或返回複選框是否被選中。

值爲true時,表示複選框被選中,值爲false時,表示複選框沒被選中。當ThreeState屬性值爲true時,中間態也表示選中。 

(4)CheckState 屬性:用來設置或返回複選框的狀態。

在 ThreeState 屬性值爲 false 時,取值有CheckState.Checked或CheckState.Unchecked。在ThreeState屬性值被設置爲True時,CheckState還可以取值 CheckState.Indeterminate,在此時,複選框顯示爲淺灰色選中狀態,該狀態通常表示該選項下的多個子選項未完全選中。 

CheckBox控件的常用事件有Click和CheckedChanged等,其含義及觸發時機與單選按鈕完成一致。 

 

列表類控件 
10、ListBox 控件 
ListBox 控件又稱列表框,它在工具箱中的圖標爲,它顯示一個項目列表供用戶選擇。在列表框中,用戶一次可以選擇一項,也可以選擇多項。 
1、常用屬性: 
(1)Items屬性: 用於存放列表框中的列表項,是一個集合。通過該屬性,可以添加列表項、移除列表項和獲得列表項的數目。 
(2)MultiColumn 屬性:用來獲取或設置一個值,該值指示ListBox是否支持多列。值爲 true 時表示支持多列,值爲 false 時不支持多列。當使用多列模式時,可以使控件得以顯示更多可見項,如圖9-19 所示。 
(3)ColumnWidth 屬性:用來獲取或設置多列ListBox控件中列的寬度。 





(4)SelectionMode屬性:用來獲取或設置在ListBox控件中選擇列表項的方法。

當 SelectionMode屬性設置爲 SelectionMode.MultiExtended 時,按下 Shift 鍵的同時單擊鼠標或者同時按 Shift 鍵和箭頭鍵之一(上箭頭鍵、下箭頭鍵、左箭頭鍵和右箭頭鍵),會將選定內容從前一選定項擴展到當前項。按 Ctrl 鍵的同時單擊鼠標將選擇或撤銷選擇列表中的某項;當該屬性設置爲 SelectionMode.MultiSimple 時,鼠標單擊或按空格鍵將選擇或撤銷選擇列表中的某項;該屬性的默認值爲SelectionMode.One,則只能選擇一項。 

(5)SelectedIndex屬性:用來獲取或設置ListBox控件中當前選定項的從零開始的索引。

如果未選定任何項,則返回值爲1。對於只能選擇一項的ListBox控件,可使用此屬性確定ListBox中選定的項的索引。

如果 ListBox 控件的 SelectionMode 屬性設置爲 SelectionMode.MultiSimple 或 SelectionMode.MultiExtended,並在該列表中選定多個項,此時應用SelectedIndices來獲取選定項的索引。 

(6)SelectedIndices屬性:該屬性用來獲取一個集合,該集合包含 ListBox 控件中所有選定項的從零開始的索引。 
(7)SelectedItem屬性:獲取或設置ListBox中的當前選定項。 
(8)SelectedItems屬性:獲取 ListBox控件中選定項的集合,通常在ListBox控件的SelectionMode屬性值設置爲SelectionMode.MultiSimple或SelectionMode.MultiExtended(它指示多重選擇ListBox)時使用。 

(9)Sorted屬性:獲取或設置一個值,該值指示ListBox控件中的列表項是否按字母順序排序。

如果列表項按字母排序,該屬性值爲true;如果列表項不按字母排序,該屬性值爲false。

默認值爲false。在向已排序的 ListBox控件中添加項時,這些項會移動到排序列表中適當的位置。 

(10)Text 屬性:該屬性用來獲取或搜索 ListBox 控件中當前選定項的文本。

當把此屬性值設置爲字符串值時,ListBox 控件將在列表內搜索與指定文本匹配的項並選擇該項。若在列表中選擇了一項或多項,該屬性將返回第一個選定項的文本。 

(11)ItemsCount屬性:該屬性用來返回列表項的數目。 

 

2、常用方法: 
(1)FindString方法:用來查找列表項中以指定字符串開始的第一個項,有兩種調用格式。 
[格式1]: ListBox對象.FindString(s); 

[功能]:在“ListBox 對象”指定的列表框中查找字符串 s,如果找到則返回該項從零開始的索引;如果找不到匹配項,則返回ListBox.NoMatches。 

 

[格式2]: ListBox對象.FindString(s,n); 
[功能]:在 ListBox 對象指定的列表框中查找字符串 s,查找的起始項爲n+1,即 n 爲開始查找的前一項的索引。如果找到則返回該項從零開始的索引;如果找不到匹配項,則返回ListBox.NoMatches。 
注意:FindString 方式只是詞語部分匹配,即要查找的字符串在列表項的開頭,便認爲是匹配的,如果要精確匹配,即只有在列表項與查找字符串完全一致時才認爲匹配,可使用FindStringExact方法,調用格式與功能與FindString基本一致。 
(2)SetSelected方法:用來選中某一項或取消對某一項的選擇,調用格式及功能如下。 
[格式]: ListBox對象.SetSelected(n,l); 
[功能]:如果參數 l 的值是 true,則在 ListBox 對象指定的列表框中選中索引爲 n 的列表項,如果參數 l 的值是 false,則索引爲n的列表項未被選中。 
(3)Items.Add方法:用來向列表框中增添一個列表項,調用格式及功能如下。 
[格式]: ListBox對象.Items.Add(s); 
[功能]:把參數s添加到“listBox對象”指定的列表框的列表項中。 
(4)Items.Insert方法:用來在列表框中指定位置插入一個列表項,調用格式及功能如下。 
[格式]: ListBox對象.Items.Insert(n,s); 
[功能]:參數n代表要插入的項的位置索引,參數 s代表要插入的項,其功能是把s插入到“listBox對象”指定的列表框的索引爲n的位置處。 
(5)Items.Remove方法:用來從列表框中刪除一個列表項,調用格式及功能如下。 
[格式]: ListBox對象.Items.Remove(k); 
[功能]:從 ListBox對象指定的列表框中刪除列表項s。 
(6)Items.Clear方法:用來清除列表框中的所有項。其調用格式如下: 
ListBox對象.Items.Clear(); 該方法無參數。 
(7)BeginUpdate方法和EndUpdate方法:這兩個方法均無參數,調用格式分別如下: 
ListBox對象.BeginUpdate(); 
ListBox對象.EndUpdate(); 
這兩個方法的作用是保證使用 Items.Add 方法向列表框中添加列表項時,不重繪列表框。即在向列表框添加項之前,調用BeginUpdate方法,以防止每次向列表框中添加項時都重新 繪製 ListBox 控件。完成向列表框中添加項的任務後,再調用 EndUpdate 方法使 ListBox 控件重新繪製。
當向列表框中添加大量的列表項時,使用這種方法添加項可以防止在繪製 ListBox 時的閃爍現象。一個例子程序如下: 




















[csharp] view plain copy

 

  1. public void AddToMyListBox()   
  2. {  
  3.     listBox1.BeginUpdate();   
  4.     for(intx=1;x<5000;x++)   
  5.     {   
  6.         listBox1.Items.Add("Item"+x.ToString());   
  7.     }   
  8.     listBox1.EndUpdate();   
  9. }   

ListBox控件常用事件有Click和 SelectedIndexChanged,SelectedIndexChanged事件在列表框中改變選中項時發生。 



11、ComboBox 控件 
ComboBox 控件又稱組合框,在工具箱中的圖標爲。默認情況下,組合框分兩個部分顯示:頂部是一個允許輸入文本的文本框,下面的列表框則顯示列表項。可以認爲ComboBox就是文本框與列表框的組合,與文本框和列表框的功能基本一致。與列表框相比,組合框不能多選,它無 SelectionMode 屬性。但組合框有一個名爲DropDownStyle的屬性,該屬性用來設置或獲取組合框的樣式,其取值及含義如表9-10所示。 

組合框的各種樣式如圖9-22 所示, 左邊的組合框能夠通過文本框輸入文本, 中間的組合框則不能輸入文本,只能選擇列表項。 



12、CheckedListBox 控件 










CheckedListBox控件又稱複選列表框,它擴展了ListBox控件,它幾乎能完成列表框可以完成的所有任務,並且還可以在列表項旁邊顯示覆選標記。兩種控件間的其他差異在於,複選列表框只支持DrawMode.Normal,並且複選列表框只能有一項選定或沒有任何選定。此處需要注意一點:選定的項是指窗體上突出顯示的項,已選中的項是指左邊的複選框被選中的項。複選列表框的樣式如圖9-23所示。 

除具有列表框的全部屬性外,它還具有以下屬性。 
(1)CheckOnClick屬性:獲取或設置一個值,該值指示當某項被選定時是否應切換左側的複選框。如果立即切換選中標記,則該屬性值爲true;否則爲false。默認值爲false。 
(2)CheckedItems 屬性:該屬性是複選列表框中選中項的集合,只代表處於CheckState. Checked或CheckState.Indeterminate狀態的那些項。 該集合中的索引按升序排列。 

(3)CheckedIndices 屬性:該屬性代表選中項(處於選中狀態或中間狀態的那些項)索引的集合。 

 

PictureBox控件的使用 
13、PictureBox 控件的使用 

PictureBox 控件又稱圖片框,常用於圖形設計和圖像處理應用程序,在該控件中可以加載的圖像文件格式有:位圖文件(.Bmp)、圖標文件(.ICO)、圖元文件(.wmf)、.JPEG 和.GIF 文件。下而僅介紹該控件的常用屬性和事件。

 

1、常用屬性: 

(1)Image屬性:用來設置控件要顯示的圖像。把文件中的圖像加載到圖片框通常採用以下三種方式。 設計時單擊Image屬性,在其後將出現【…】按鈕,單擊該按鈕將出現一個【打開】對話框,在該對話框中找到相應的圖形文件後單擊【確定】按鈕。

產生一個Bitmap類的實例並賦值給Image屬性。形式如下: Bitmapp=newBitmap(圖像文件名); pictureBox對象名.Image=p; 

通過 Image.FromFile方法直接從文件中加載。形式如下: 

pictureBox對象名.Image=Image.FromFile(圖像文件名); 
(2)SizeMode屬性:用來決定圖像的顯示模式。

 

 

14、Timer 控件 
Timer 控件又稱定時器控件或計時器控件,在工具箱中的圖標是 ,該控件的主要作用是按一定的時間間隔週期性地觸發一個名爲Tick的事件, 因此在該事件的代碼中可以放置一些需要每隔一段時間重複執行的程序段。在程序運行時,定時器控件是不可見的。 
1、常用屬性: 
(1)Enabled 屬性:用來設置定時器是否正在運行。值爲 true 時,定時器正在運行,值爲 false 時,定時器不在運行。 
(2)Interval屬性:用來設置定時器兩次Tick事件發生的時間間隔,以毫秒爲單位。如它的值設置爲500,則將每隔0.5秒發生一個Tick事件。 
2、常用方法: 
(1)Start方法:用來啓動定時器。調用的一般格式如下: 
Timer控件名.start(); 該方法無參數。 
(2)Stop方法:用來停止定時器。調用的一般格式如下: 
Timer控件名.stop(); 該方法無參數。 
3、常用事件: 









定義器控件響應的事件只有Tick,每隔Interval時間後將觸發一次該事件。 

 

 

15、ProgressBar控件和 TrackBar控件 

 

1.ProgressBar控件 

ProgressBar 控件又稱進度條控件,它在工具欄中的圖標爲 ,該控件在水平欄中顯示適當長度的矩形來指示進程的進度。當執行進程時,進度條用系統突出顯示顏色在水平欄中從左向右進行填充。進程完成時,進度欄被填滿。當某進程運行時間較長時,如果沒有視覺提示,用戶可能會認爲應用程序不響應,通過在應用程序中使用進度條,就可以告訴用戶應用程序正在執行冗長的任務且應用程序仍在響應。

ProgressBar控件的常用屬性如下。 
(1)Maximum屬性:用來設置或返回進度條能夠顯示的最大值,默認值爲100。 
(2)Minimum屬性:用來設置或返回進度條能夠顯示的最小值,默認值爲0。 
(3)Value屬性:用來設置或返回進度條的當前位置。 


(4)Step屬性:用來設置或返回一個值,該值用來決定每次調用PerformStep 方法時, Value屬性增加的幅度。例如,如果要複製一組文件,則可將 Step 屬性的值設置爲 1,並將 Maximum 屬性的值設置爲要複製的文件總數。在複製每個文件時,可以調用PerformStep方法按Step屬性的值增加進度欄。

 

ProgressBar控件的常用方法如下。 
(1)Increment方法:用來按指定的數量增加進度條的值,調用的一般格式如下: 
progressBar對象.Increment(n); 
其功能是把“progressBar對象”指定的進度條對象的Value屬性值增加n,n爲整數。調用該方法之後,若Value屬性大於Maximum屬性的值,則 Value屬性值就是Maximum值,若Value屬性小於Minimum屬性值,則 Value屬性值就是Minimum值。 
(2)PerformStep方法:用來按step屬性值來增加進度條的Value屬性值,調用的一般格式如下: 
progressBar對象.PerformStep(); 該方法無參數。例如,下列程序段是一個顯示覆制多個文件的進度的進度條使用方法。 




[csharp] view plain copy

 

  1. private void CopyWithProgress(string[]filenames)   
  2. {  
  3.     pBar1.Visible=true;   
  4.     pBar1.Minimum=1;   
  5.     pBar1.Maximum=filenames.Length;   
  6.     pBar1.Value=1;   
  7.     pBar1.Step=1;   
  8.     for(intx=1;x<=filenames.Length;x++)   
  9.     {  
  10.         if(CopyFile(filenames[x-1])==true)   
  11.         {   
  12.             pBar1.PerformStep();   
  13.         }     
  14.     }   
  15. }   

ProgressBar控件能響應很多事件,但一般很少使用。 

 

2.TrackBar控件 

TrackBar 控件又稱滑塊控件、跟蹤條控件,它在工具箱中的圖標是“ ” 。該控件主要用於在大量信息中進行瀏覽,或用於以可視形式調整數字設置。TrackBar控件有兩部分:縮略圖(也稱爲滑塊)和刻度線。縮略圖是可以調整的部分,其位置與 Value 屬性相對應。刻度線是按規則間隔分隔的可視化指示符。跟蹤條控件可以按指定的增量移動,並且可以水平或者垂直排列。 

TrackBar控件的常用屬性如下。 
(1)Maximum屬性:用來獲取或設置TrackBar控件可表示的範圍上限,即最大值。 
(2)Minimum屬性:用來獲取或設置TrackBar控件可表示的範圍下限,即最小值。 
(3)Orientation屬性:用來獲取或設置一個值,該值指示跟蹤條是在水平方向還是在垂 直方向。 
(4)LargeChange屬性:用來獲取或設置一個值,該值指示當滑塊長距離移動時應爲Value屬性中加上或減去的值。 
(5)SmallChange屬性:用來獲取或設置當滑塊短距離移動時對Value屬性進行增減的值。 
(6)Value屬性:用來獲取或設置滑塊在跟蹤條控件上的當前位置的值。 
(7)TickFrequency屬性:用來獲取或設置一個值,該值指定控件上繪製的刻度之間的增量。 
(8)TickStyle 屬性:用來獲取或設置一個值,該值指示如何顯示跟蹤條上的刻度線。
TrackBar控件的常用事件是ValueChanged,該事件在TrackBar控件的Value屬性值改變時發生。 


16、HScrollBar 控件和 VScrollBar控件的使用 
滾動條(ScrollBar)是大部分Windows應用程序中都具有的控件,是 Windows界面的 一種常見元素,通常分爲水平滾動條(HscrollBar)和垂直滾動條(VscrollBar)。HScrollBar 在工具箱中的圖標是,VScrollBar控件在工具箱中的圖標是。這兩 個控件主要用於在應用程序或控件中水平或垂直滾動,以方便在較長的列表中或大量信息中 












轉移。 

 

1、常用屬性: 
(1)Minimum和 Maximum屬性:與TrackBar控件的同名屬性基本相同。 
(2)Value屬性:用於設置或返回滑塊在滾動條中所處的位置,其默認值爲0。當滑塊的位置值爲最小值時,滑塊移到水平滾動條的最左端位置,或移到垂直滾動條的頂端位置。 當滑塊的位置值爲最大值時,滑塊移到水平滾動條的最右端位置或垂直滾動條的底端位置。 
(3)SmallChange和LargeChange屬性:這兩個屬性主要用於調整滑塊移動的距離。其中 SmallChange屬性用於控制當鼠標單擊滾動條兩邊的箭頭時,滑塊滾動的值,即 Value屬性增加或減小的值。而LargeChange屬性則控制當用鼠標直接單擊滾動條時滑塊滾動的值。當用戶按下PageUp鍵或PageDown鍵或者在滑塊的任何一邊單擊滾動條軌跡時,Value屬性將按照 LargeChange屬性中設置的值進行增加或減小。 


 

2、常用事件: 
(1)Scroll事件:該事件在用戶通過鼠標或鍵盤移動滑塊後發生。 
(2)ValueChanged事件:該事件在滾動條控件的Value屬性值改變時發生。 滾動條的使用方法與TrackBar控件基本一致,此處不再贅述。 

對話框類控件 
17、OpenFileDialog 控件 




OpenFileDialog控件又稱打開文件對話框,主要用來彈出Windows中標準的【打開文件】對話框。該控件在工具箱中的圖標爲 。

OpenFileDialog控件的常用屬性如下。 
(1)Title屬性:用來獲取或設置對話框標題,默認值爲空字符串("")。如果標題爲空字符串,則系統將使用默認標題: “打開” 。 
(2)Filter屬性:用來獲取或設置當前文件名篩選器字符串,該字符串決定對話框的【另存爲文件類型】或【文件類型】框中出現的選擇內容。對於每個篩選選項,篩選器字符串都包含篩選器說明、垂直線條(|)和篩選器模式。不同篩選選項的字符串由垂直線條隔開,例如: “文本文件(*.txt)|*.txt|所有文件(*.*)|*.*” 。還可以通過用分號來分隔各種文件類型,可以將多個篩選器模式添加到篩選器中,例如: “圖像文件(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG; *.GIF|所有文件(*.*)|*.*” 。 
(3)FilterIndex屬性:用來獲取或設置文件對話框中當前選定篩選器的索引。第一個篩選器的索引爲1,默認值爲1。 
(4)FileName 屬性:用來獲取在打開文件對話框中選定的文件名的字符串。文件名既包含文件路徑也包含擴展名。如果未選定文件,該屬性將返回空字符串("")。 
(5)InitialDirectory屬性:用來獲取或設置文件對話框顯示的初始目錄,默認值爲空字符串("")。 
(6)ShowReadOnly屬性:用來獲取或設置一個值,該值指示對話框是否包含只讀複選框。如果對話框包含只讀複選框,則屬性值爲true,否則屬性值爲false。默認值爲false。 
(7)ReadOnlyChecked屬性:用來獲取或設置一個值,該值指示是否選定只讀複選框。如果選中了只讀複選框,則屬性值爲true,反之,屬性值爲false。默認值爲false。 
(8)Multiselect屬性:用來獲取或設置一個值,該值指示對話框是否允許選擇多個文件。如果對話框允許同時選定多個文件,則該屬性值爲true,反之,屬性值爲false。默認值爲false。 
(9)FileNames屬性:用來獲取對話框中所有選定文件的文件名。每個文件名都既包含文件路徑又包含文件擴展名。如果未選定文件,該方法將返回空數組。 
(10)RestoreDirectory屬性:用來獲取或設置一個值,該值指示對話框在關閉前是否還原當前目錄。假設用戶在搜索文件的過程中更改了目錄,且該屬性值爲 true,那麼,對話框會將當前目錄還原爲初始值,若該屬性值爲 false,則不還原成初始值。默認值爲 false。OpenFileDialog 控件的常用方法有兩個:OpenFile和 ShowDialog方法,本節只介紹ShowDialog方法,該方法的作用是顯示通用對話框,其一般調用形式如下: 
通用對話框對象名.ShowDialog(); 










通用對話框運行時,如果單擊對話框中的【確定】按鈕,則返回值爲 DialogResult.OK;否則返回值爲DialogResult.Cancel。

其他對話框控件均具有ShowDialog方法,以後不再重複介紹。 

 

18、SaveFileDialog 控件 
SaveFileDialog 控件又稱保存文件對話框,主要用來彈出 Windows 中標準的【保存文件】對話框。該控件在工具箱中的圖標爲 。 
SaveFileDialog 控件也具有 FileName、Filter、FilterIndex、InitialDirectory、Title 等屬性,這些屬性的作用與 OpenFileDialog對話框控件基本一致,此處不再贅述。 
需注意的是:上述兩個對話框只返回要打開或保存的文件名,並沒有真正提供打開或保存文件的功能,程序員必須自己編寫文件打開或保存程序,才能真正實現文件的打開和保存功能。 


19、FontDialog 控件 
FontDialog控件又稱字體對話框,主要用來彈出Windows中標準的【字體】對話框。該控件在工具箱中的圖標爲 。字體對話框的作用是顯示當前安裝在系統中的字體列表,供用戶進行選擇。下面介紹字體對話框的主要屬性。 
(1)Font屬性:該屬性是字體對話框的最重要屬性,通過它可以設定或獲取字體信息。 
(2)Color屬性:用來設定或獲取字符的顏色。 
(3)MaxSize屬性:用來獲取或設置用戶可選擇的最大磅值。 
(4)MinSize屬性:用來獲取或設置用戶可選擇的最小磅值。192VisualC#.NET應用教程 
(5)ShowColor屬性:用來獲取或設置一個值,該值指示對話框是否顯示顏色選擇框。如果對話框顯示顏色選擇框,屬性值爲true,反之,屬性值爲false。默認值爲false。 











(6)ShowEffects 屬性:用來獲取或設置一個值,該值指示對話框是否包含允許用戶指定刪除線、下劃線和文本顏色選項的控件。

如果對話框包含設置刪除線、下劃線和文本顏色選項的控件,屬性值爲 true,反之,屬性值爲false。默認值爲true。 

 

20、ColorDialog控件 
ColorDialog 控件又稱顏色對話框,主要用來彈出 Windows 中標準的【顏色】對話框。該控件在工具箱中的圖標爲 。顏色對話框的作用是供用戶選擇一種顏色,並用 Color 屬性記錄用戶選擇的顏色值。下面介紹顏色對話框的主要屬性。 
(1)AllowFullOpen屬性:用來獲取或設置一個值,該值指示用戶是否可以使用該對話框定義自定義顏色。如果允許用戶自定義顏色,屬性值爲true,否則屬性值爲false。默認值爲true。 
(2)FullOpen 屬性:用來獲取或設置一個值,該值指示用於創建自定義顏色的控件在對話框打開時是否可見。值爲true時可見,值爲 false時不可見。 
(3)AnyColor 屬性:用來獲取或設置一個值,該值指示對話框是否顯示基本顏色集中可用的所有顏色。值爲 true時,顯示所有顏色,否則不顯示所有顏色。 



(4)Color屬性:用來獲取或設置用戶選定的顏色。 

 

21、PrintDialog控件和 PrintDocument 控件 
PrintDialog 控件在工具箱中的圖標是 ,PrintDocument 控件在工具箱中的圖標是。使用PrintDialog控件可以顯示Windows標準的【打印】對話框,在該對話框中用戶可

以選擇打印機、選擇要打印的頁及頁碼範圍等。需要注意的是:該對話框並不負責具體的打印任務,要想在應用程序中控制打印內容必須使用 PrintDocument 控件。關於這兩個控件的詳細使用方法讀者可參閱相關資料或VisualC#的幫助文件。 

 

22、用戶自定義對話框 
除了可以使用Windows自帶的標準對話框外,用戶還可以把自己設計的窗體定義成對話框。使用自定義對話框有以下幾個要點。 
(1)將窗體的FormBorderStyle屬性值設置爲FixedDialog。 
(2)根據需要向窗體上添加控件。 
(3)使用窗體的ShowDialog方法顯示窗體,即顯示出對話框。 


23、菜單控件 
Windows 的菜單系統是圖形用戶界面(GUI)的重要組成之一,在 VisualC#中使用 MainMenu 控件可以很方便地實現Windows的菜單,MainMenu控件在工具箱中的圖標爲 。 
1.菜單的結構 
圖 10-9和圖10-10 是典型的菜單結構。其中有文字的單個命令稱菜單項,頂層菜單項是橫着排列的,單擊某個菜單項後彈出的稱爲菜單或子菜單,它們均包含若干個菜單項,菜單項其實是 MenuItem 類的一個對象。菜單項有的是變灰顯示的,表示該菜單項當前是被禁止使用的。有的菜單項的提示文字中有帶下劃線的字母,該字母稱爲熱鍵(或訪問鍵),若是頂層菜單,可通過按“ALT+熱鍵”打開該菜單,若是某個子菜單中的一個選項,則在打開子菜單後直接按熱鍵就會執行相應的菜單命令。有的菜單項後面有一個按鍵或組合鍵,稱快捷鍵,在不打開菜單的情況下按快捷鍵,將執行相應的命令。在圖 10-9 中,【保存文件】菜單項是加粗顯示的,該菜單項稱爲默認項。圖10-9的【另存爲】和【退出】之間有一個灰色的線條,該線條稱爲分隔線或分隔符。在圖 10-10 中菜單項【白色背景】前面有一個“√”號,稱爲選中標記,菜單項加上選中標記表示該菜單項代表的功能當前正在起作用。 

2.菜單項的常用屬性 
(1)Text 屬性:用來獲取或設置一個值,通過該值指示菜單項標題。當使用 Text 屬性爲菜單項指定標題時,還可以在字符前加一個“&”號來指定熱鍵(訪問鍵,即加下劃線的字母)。例如,若要將“File”中的“F”指定爲訪問鍵,應將菜單項的標題指定爲“&File” 。 
(2)Checked屬性:用來獲取或設置一個值,通過該值指示選中標記是否出現在菜單項文本的旁邊。如果要放置選中標記在菜單項文本的旁邊,屬性值爲true,否則屬性值爲false。默認值爲false。 
(3)DefaultItem 屬性:用來獲取或設置一個值,通過該值指示菜單項是否爲默認菜單項。值爲 true 時,是默認菜單項,值爲 false時,不是默認菜單項。菜單的默認菜單項以粗體的形式顯示。當用戶雙擊包含默認項的子菜單後,默認項被選定,然後子菜單關閉。 
(4)Enabled屬性:用來獲取或設置一個值,通過該值指示菜單項是否可用。值爲true時表示可用,值爲false表示當前禁止使用。 
(5)RadioCheck 屬性:用來獲取或設置一個值,通過該值指示選中的菜單項的左邊是顯示單選按鈕還是選中標記。值爲true時將顯示單選按鈕標記,值爲false時顯示選中標記。 
(6)Shortcut屬性:用來獲取或設置一個值,該值指示與菜單項相關聯的快捷鍵。 
(7)ShowShortcut 屬性:用來獲取或設置一個值,該值指示與菜單項關聯的快捷鍵是否在菜單項標題的旁邊顯示。如果快捷組合鍵在菜單項標題的旁邊顯示,該屬性值爲 true,如果不顯示快捷鍵,該屬性值爲false。默認值爲true。 


















(8)MdiList屬性:用來獲取或設置一個值,通過該值指示是否用在關聯窗體內顯示的多文檔界面(MDI)子窗口列表來填充菜單項。若要在該菜單項中顯示MDI子窗口列表,則設置該屬性值爲true,否則設置該屬性的值爲false。默認值爲false。 

 

3.菜單項的常用事件 

菜單項的常用事件主要有Click事件,該事件在用戶單擊菜單項時發生。

 

24、多窗體程序設計 
Windows應用程序很少只由一個窗體組成, 一般情況下一個應用程序均擁有很多個窗體。 C#項目剛建立時只有一個名爲Form1的窗體,要建立多窗體應用程序應首先爲項目添加窗體,添加窗體的方法如下。 

(1) 單擊工具欄上的按鈕 或執行【項目】→【添加Windows窗體】命令,將會出現如圖 10-17 所示的【添加新項】對話框。 

(2) 在該對話框的【模板】下面的列表框中選中【Windows 窗體】圖標,在【名稱】文本框中輸入窗體名,然後單擊【打開】按鈕,即爲應用程序添加了一個窗體。 

 

25、MDI 應用程序設計 
1.MDI應用程序的概念 
在前面的章節中,所創建的都是單文檔界面(SDI)應用程序。這樣的程序(如記事本和畫圖程序)僅支持一次打開一個窗口或文檔。如果需要編輯多個文檔,必須創建SDI應用程序的多個實例。而使用多文檔界面(MDI)程序(如Word和AdobePhotoshop)時,用戶可以同時編輯多個文檔。MDI程序中的應用程序窗口稱爲父窗口,應用程序內部的窗口稱爲子窗口。雖然 MDI應用程序可以具有多個子窗口, 但是每個子窗口卻只能有一個父窗口。此外,處於活動狀態的子窗口最大數目是 1。子窗口本身不能再成爲父窗口,而且不能移動到它們的父窗口區域之外。除此以外,子窗口的行爲與任何其他窗口一樣(如可以關閉、最小化和調整大小等)。一個子窗口在功能上可能與父窗口的其他子窗口不同,例如,一個子窗口可能用於編輯圖像,另一個子窗口可能用於編輯文本,第 3 個子窗口可以使用圖形來顯示數據,但是所有的窗口都屬於相同的MDI父窗口。圖 10-19 是一個典型的 MDI應用程序。外面的窗口是應用程序窗口,裏面的兩個小窗口是 MDI子窗口。 

 

2.與 MDI應用程序設計有關的屬性、方法和事件 
常用的MDI父窗體屬性如下。 
(1)ActiveMdiChild屬性:該屬性用來表示當前活動的MDI子窗口,如果當前沒有子窗口,則返回null。 
(2)IsMdiContainer屬性:該屬性用來獲取或設置一個值,該值指示窗體是否爲多文檔界面(MDI)子窗體的容器,即MDI父窗體。值爲true時,表示是父窗體,值爲false時,表示不是父窗體。 
(3)MdiChildren屬性:該屬性以窗體數組形式返回MDI子窗體,每個數組元素對應一個 MDI子窗體。 常用的MDI子窗體的屬性有: 
(1)IsMdiChild屬性:該屬性用來獲取一個值,該值指示該窗體是否爲多文檔界面(MDI)的子窗體。值爲 true時,表示是子窗體,值爲false時,表示不是子窗體。 




(2)MdiParent屬性:該屬性用來指定該子窗體的MDI父窗體。

與MDI應用程序設計有關的方法中,一般只使用父窗體的LayoutMdi方法,該方法的調用格式如下: 

MDI父窗體名.LayoutMdi(Value); 

該方法用來在MDI父窗體中排列MDI子窗體,以便導航和操作MDI子窗體。參數Value決定排列方式,取值有:MdiLayout.ArrangeIcons(所有 MDI 子窗體以圖標的形式排列在 MDI 父窗體的工作區內)、MdiLayout.TileHorizontal (所有MDI子窗口均水平平鋪在MDI父窗體的工作區內)、 MdiLayout.TileVertical(所有 MDI 子窗口均垂直平鋪在 MDI 父窗體的工作區內)和 MdiLayout.Cascade(所有 MDI 子窗口均層疊在 MDI 父窗體的工作區內)。

常用的 MDI 父窗體的事件是 MdiChildActivate,當激活或關閉一個 MDI子窗體時將發生該事件。 

 

3.菜單合併 
父窗體和子窗體可以使用不同的菜單,這些菜單會在選擇子窗體的時候合併。如果需要指定菜單的合併方式,程序員可以設置每個菜單項的MergeOrder屬性和MergeType屬性。 

(1)MergeOrder屬性:用來確定當兩個菜單合併時菜單項出現的順序,具有較低 MergeOrder的菜單項會首先出現。 
(2)MergeType屬性:當合並的兩個菜單的某些菜單項的MergeOrder屬性值相等時, 使用該屬性可以控制這些菜單項的顯示方式。其取值及含義如表10-4所示。 

26、鍵盤事件處理 





鍵盤事件在用戶按下鍵盤上的鍵時發生,可分爲兩類。第一類是KeyPress事件,當按下的鍵表示的是一個ASCII 字符時就會觸發這類事件,可通過它的 KeyPressEventArgs 類型參數的屬性 KeyChar 來確定按下鍵的 ASCII 碼。使用 KeyPress 事件無法判斷是否按下了修改鍵(例如 Shift,Alt 和 Ctrl 鍵),爲了判斷這些動作, 就要處理KeyUp 或KeyDown事件, 這些事件組成了第二類鍵盤事件。 該類事件有一個KeyEventArgs類型的參數,通過該參數可以測試是否按下了一些修改鍵、功能鍵等特殊按鍵信息。 

1.KeyPressEventArgs類的主要屬性(KeyPress事件的一個參數類型) 
(1)Handled屬性:用來獲取或設置一個值,該值指示是否處理過KeyPress事件。 

(2)KeyChar屬性:用來獲取按下的鍵對應的字符,通常是該鍵的ASCII碼。 

 

2.KeyEventArgs類的主要屬性(KeyUp和 KeyDown事件的一個參數) 
(1)Alt屬性:用來獲取一個值,該值指示是否曾按下Alt鍵。 
(2)Control屬性:用來獲取一個值,該值指示是否曾按下Ctrl鍵。 
(3)Shift屬性:用來獲取一個值,該值指示是否曾按下Shift鍵。 
(4)Handled屬性:用來獲取或設置一個值,該值指示是否處理過此事件。 
(5)KeyCode屬性:以 Keys枚舉型值返回鍵盤鍵的鍵碼,該屬性不包含修改鍵(Alt、Control和 Shift鍵)信息,用於測試指定的鍵盤鍵。 
(6)KeyData 屬性:以 Keys 枚舉類型值返回鍵盤鍵的鍵碼,幷包含修改鍵信息,用於判斷關於按下鍵盤鍵的所有信息。 
(7)KeyValue屬性:以整數形式返回鍵碼,而不是Keys枚舉類型值。用於獲得所按下鍵盤鍵的數字表示。 
(8)Modifiers 屬性:以 Keys 枚舉類型值返回所有按下的修改鍵(Alt、Control 和 Shift 鍵),僅用於判斷修改鍵信息。 







 

27、鼠標屬性及事件處理 

對鼠標操作的處理是應用程序的重要功能之一,在VisualC#中有一些與鼠標操作相關的事件,利用它們可以方便地進行與鼠標有關的編程。 

Button屬性:用來獲取曾按下的是哪個鼠標按鈕。

該屬性是MouseButtons枚舉型的值, 取值及含義如下:Left(按下鼠標左按鈕)、Middle(按下鼠標中按鈕)、Right(鼠標右按鈕)、None(沒有按下鼠標按鈕)、 XButton1(按下了第一個XButton按鈕, 僅用於Microsoft智能鼠標瀏覽器)和XButton2(按下了第二個XButton按鈕,僅用於 Microsoft智能鼠標瀏覽器) 
Clicks屬性:用來獲取按下並釋放鼠標按鈕的次數。 
Delta屬性:用來獲取鼠標輪已轉動的制動器數的有符號計數。制動器是鼠標輪的一個凹口。 
X 屬性:用來獲取鼠標所在位置的x座標。 
Y 屬性:用來獲取鼠標所在位置的y座標。



(1)MouseEnter事件:在鼠標指針進入控件時發生。 
(2)MouseMove事件:在鼠標指針移到控件上時發生。事件處理程序接收一個MouseEventArgs類型的參數,該參數包含與此事件相關的數據。該參數的主要屬性及其含義如下。  
(3)MouseHover事件:當鼠標指針懸停在控件上時將發生該事件。 
(4)MouseDown事件:當鼠標指針位於控件上並按下鼠標鍵時將發生該事件。事件處理程序也接收一個MouseEventArgs類型的參數。 
(5)MouseWheel事件:在移動鼠標輪並且控件有焦點時將發生該事件。該事件的事件處理程序接收一個MouseEventArgs類型的參數 



(6)MouseUp 事件:當鼠標指針在控件上並釋放鼠標鍵時將發生該事件。事件處理程序也接收一個MouseEventArgs類型的參數。 

(7)MouseLeave事件:在鼠標指針離開控件時將發生該事件。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章