屬性與方法的作用,可以通過看下面實例。
1、窗體
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 時,鼠標單擊或按- 11 -
空格鍵將選擇或撤銷選擇列表中的某項;該屬性的默認值為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事件在列表框中改變選中項
時發生。
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();
該方法無參數。例如,下列程序段是一個顯示復制多個文件的進度的進度條使用方法。
privatevoidCopyWithProgress(string[]filenames)
{pBar1.Visible=true;
pBar1.Minimum=1;
pBar1.Maximum=filenames.Length;
pBar1.Value=1;
pBar1.Step=1;
for(intx=1;x<=filenames.Length;x++)
{if(CopyFile(filenames[x-1])==true)
{
pBar1.PerformStep();
}
}
}
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 屬性記錄用戶選擇- 18 -
的顏色值。下面介紹顏色對話框的主要屬性。
1)AllowFullOpen屬性:用來獲取或設置一個值,該值指示用戶是否可以使用該對話框定義自定義顏色。
如果允許用戶自定義顏色,屬性值為true,否則屬性值為false。默認值為true。
2)FullOpen 屬性:用來獲取或設置一個值,該值指示用於創建自定義顏色的控件在對話框打開時是否
可見。值為true時可見,值為 false時不可見。
3)AnyColor 屬性:用來獲取或設置一個值,該值指示對話框是否顯示基本顏色集中可用的所有顏色。
值為 true時,顯示所有顏色,否則不顯示所有顏色。
4)Color屬性:用來獲取或設置用戶選定的顏色。
21、PrintDialog控件和 PrintDocument 控件
PrintDialog 控件在工具箱中的圖標是 ,PrintDocument 控件在工具箱中的圖標是
。使用PrintDialog控件可以顯示Windows標准的打印】對話框,在該對話框中用戶可
以選擇打印機、選擇要打印的頁及頁碼范圍等。需要注意的是:該對話框並不負責具體的打印任務,要想
在應用程序中控制打印內容必須使用 PrintDocument 控件。關於這兩個控件的詳細使用方法讀者可參閱相
關資料或VisualC#的幫助文件。
6.用戶自定義對話框
除了可以使用Windows自帶的標准對話框外,用戶還可以把自己設計的窗體定義成對話框。使用自定義對
話框有以下幾個要點。
1)將窗體的FormBorderStyle屬性值設置為FixedDialog。
2)根據需要向窗體上添加控件。
3)使用窗體的ShowDialog方法顯示窗體,即顯示出對話框。
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#中有一些與鼠標操作相關的事件,利用它們可
以方便地進行與鼠標有關的編程。
1)MouseEnter事件:在鼠標指針進入控件時發生。
2)MouseMove事件:在鼠標指針移到控件上時發生。事件處理程序接收一個MouseEventArgs類型的參
數,該參數包含與此事件相關的數據。該參數的主要屬性及其含義如下。
Button屬性:用來獲取曾按下的是哪個鼠標按鈕。該屬性是MouseButtons枚舉型的值,
取值及含義如下:Left按下鼠標左按鈕)、Middle按下鼠標中按鈕)、Right鼠標右按鈕)、None沒
有按下鼠標按鈕)、 XButton1 按下了第一個XButton按鈕, 僅用於Microsoft智能鼠標浏覽器) 和XButton2
按下了第二個XButton按鈕,僅用於 Microsoft智能鼠標浏覽器)
Clicks屬性:用來獲取按下並釋放鼠標按鈕的次數。
Delta屬性:用來獲取鼠標輪已轉動的制動器數的有符號計數。制動器是鼠標輪的一個凹口。
X 屬性:用來獲取鼠標所在位置的x坐標。
Y 屬性:用來獲取鼠標所在位置的y坐標。
3)MouseHover事件:當鼠標指針懸停在控件上時將發生該事件。
4)MouseDown事件:當鼠標指針位於控件上並按下鼠標鍵時將發生該事件。事件處理程序也接收一個
MouseEventArgs類型的參數。
5)MouseWheel事件:在移動鼠標輪並且控件有焦點時將發生該事件。該事件的事件處理程序接收一個
MouseEventArgs類型的參數
6)MouseUp 事件:當鼠標指針在控件上並釋放鼠標鍵時將發生該事件。事件處理程序也接收一個
MouseEventArgs類型的參數。
7)MouseLeave事件:在鼠標指針離開控件時將發生該事件。