1、窗體... 1
2、Label 控件... 3
3、TextBox 控件... 4
4、RichTextBox控件... 5
5、NumericUpDown 控件... 7
6、Button 控件... 7
7、GroupBox 控件... 7
8、RadioButton控件... 8
9、CheckBox 控件... 8
10、ListBox 控件... 9
11、ComboBox 控件... 10
12、CheckedListBox 控件... 10
13、PictureBox 控件的使用... 11
14、Timer 控件... 11
15、ProgressBar控件和 TrackBar控件... 12
16、HScrollBar 控件和 VScrollBar控件的使用... 13
17、OpenFileDialog 控件... 13
18、SaveFileDialog 控件... 14
19、FontDialog 控件... 14
20、ColorDialog控件... 14
21、PrintDialog控件和 PrintDocument 控件... 15
22、用戶自定義對話框... 15
23、菜單控件... 15
25、MDI 應用程序設計... 16
26、鍵盤事件處理... 17
27、鼠標事件處理... 18
28、排列窗體上的控件... 18
1、常用屬性
(1)Name屬性:用來獲取或設置窗體的名稱,在應用程序中可通過Name屬性來引用窗體。
(2) WindowState屬性: 用來獲取或設置窗體的窗口狀態。 取值有三種: Normal (窗體正常顯示)、 Minimized
(窗體以最小化形式顯示)和 Maximized(窗體以最大化形式顯示)。
(3)StartPosition屬性:用來獲取或設置運行時窗體的起始位置。其取值及含義如表9-1 所示。默認的起
始位置是WindowsDefaultLocation。
(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 屬性:用來獲取或設置一個值,該值指示控件是否可以對用戶交互作出響應。如果控件可- 3 -
以對用戶交互作出響應,則為 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事件:該事件在用戶單擊窗體時發生。 - 4 -
(7)DoubleClick事件:該事件在用戶雙擊窗體時發生。
(8)Closed事件:該事件在關閉窗體時發生。
文本框類控件
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 為三維邊框。邊框效果如圖 9-8 所示。
(6)TabIndex屬性:用來設置或返回對象的Tab鍵順序。
(7)Enabled 屬性:用來設置或返回控件的狀態。值為 true 時允許使用控件,值為 false 時禁止使用控件,此時標簽呈暗淡色,一般在代碼中設置。圖9-8 邊框效果圖 另外,標簽還具有Visible、ForeColor、Font等屬性,具體含義請參考窗體的相應屬性。
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()該方法無參數。 - 6 -
(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屬性值,均會引發此事件。
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、常用方法 - 7 -
前面介紹的 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(文件名); - 8 –
[功能]:將RTF格式文件或標准ASCII文本文件加載到RichTextBox控件中。
[格式2]: RichTextBox對象名.LoadFile(數據流,數據流類型);
[功能]:將現有數據流的內容加載到RichTextBox控件中。
[格式3]: RichTextBox對象名.LoadFile(文件名,文件類型);
[功能]:將特定類型的文件加載到RichTextBox控件中。
注意:文件類型和數據流格式見表9-5。
【Windows 窗體】控件組中的 NumericUpDown 控件看起來像是一個文本框與一對用戶可單擊以調整值的
箭頭的組合。可以通過單擊向上和向下按鈕、按向上和向下箭頭鍵來增大和減小數字,也可以直接輸入數
字。單擊向上箭頭鍵時,值向最大值方向增加;單擊向下箭頭鍵時,值
向最小值方向減少。該控件在工具箱中的圖標為 。
該控件的樣式如圖9-13所示。
1、常用屬性:
(1)DecimalPlaces:獲取或設置該控件中顯示的小數位數。
(2)Hexadecimal:獲取或設置一個值,該值指示該控件是否以十六進制格式顯示所包
含的值。
(3)Increment:獲取或設置單擊向上或向下按鈕時,該控件遞增或遞減的值。
(4)Maximum:獲取或設置該控件的最大值。
(5)Minimum:獲取或設置該控件的最小值。
(6)Value:獲取或設置該控件的當前值。
與 TextBox控件一樣,NumericUpDown控件的常用事件有:ValueChanged、GotFocus、LostFocus等。
按鈕類控件
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事件:當用戶在按鈕控件上釋放鼠標按鈕時,將發生該事件。
GroupBox控件又稱為分組框,它在工具箱中的圖標是 。該控件常用於為其他控件提供可識別的分組,其典型的用法之一就是給RadioButton控件分組。可以通過分組框的Text屬性為分組框中的控件向用戶提供提示信息,如圖 9-14 所示。設計時,向GroupBox 控件中添加控件的方法有兩種:一是直接在分組框中繪制控件;二是把某一個已存在的控件復制到剪貼板上,然後選中分組框,再執行粘貼操作即可。位於分組框中的所有控件隨著分組框的移動而一起移動,隨著分組框的刪除而全部刪除,分組框的Visible屬性和Enabled屬性也會影響到分組框中的所有控件。分組框的最常用的屬性是Text,一般用來給出分組提示。
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事件。
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等,其含義及觸發時機與單選按鈕
完成一致。
列表類控件
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 時的閃爍現象。一個例
子程序如下:
publicvoidAddToMyListBox()
{
listBox1.BeginUpdate();
for(intx=1;x<5000;x++)
{
listBox1.Items.Add("Item"+x.ToString());
}
listBox1.EndUpdate();
}
ListBox控件常用事件有Click和 SelectedIndexChanged,SelectedIndexChanged事件在列表框中改變選中項時發生。
ComboBox 控件又稱組合框,在工具箱中的圖標為。默認情況下,組合框分兩個部分顯示:頂部是一個允許輸入文本的文本框,下面的列表框則顯示列表項。可以認為ComboBox就是文本框與列表框的組合,與文本框和列表框的功能基本一致。與列表框相比,組合框不能多選,它無 SelectionMode 屬性。但組合框有一個名為DropDownStyle的屬性,該屬性用來設置或獲取組合框的樣式,其取值及含義如表9-10所示。
組合框的各種樣式如圖9-22 所示, 左邊的組合框能夠通過文本框輸入文本, 中間的組合框則不能輸入文本,只能選擇列表項。