程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#控件及常用設計整,

C#控件及常用設計整,

編輯:C#入門知識

C#控件及常用設計整,


C#控件及常用設計整

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、 常用屬性

(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事件:該事件在關閉窗體時發生。

文本框類控件

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 為三維邊框。邊框效果如圖 9-8 所示。

(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()該方法無參數。 - 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屬性值,均會引發此事件。

 

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、常用方法 - 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。

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 時的閃爍現象。一個例

子程序如下:

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控件,它幾乎能完成列表框可以完成的所有任務,並且還可以在列表項旁邊顯示復選標記。兩種控件間的其他差異在於,復選列表框只支持- 13 -

 

DrawMode.Normal,並且復選列表框只能有一項選定或沒有任何選定。此處需要注意一點:選定的項是指

窗體上突出顯示的項,已選中的項是指左邊的復選框被選中的項。復選列表框的樣式如圖9-23所示。

除具有列表框的全部屬性外,它還具有以下屬性。

(1)CheckOnClick屬性:獲取或設置一個值,該值指示當某項被選定時是否應切換左側的復選框。如果立即切換選中標記,則該屬性值為true;否則為false。默認值為false。

(2)CheckedItems 屬性:該屬性是復選列表框中選中項的集合,只代表處於CheckState. Checked或CheckState.Indeterminate狀態的那些項。 該集合中的索引按升序排列。

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

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屬性:用來決定圖像的顯示模式。其取值有四種情況,取值及含義如表9-11所示。各種模式下的圖片顯示樣式如圖9-24所示。

 

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 屬性:用來獲取或設置一個值,該值指示如何顯示跟蹤條上的刻度線。該屬性的取值及含義如表9-12 所示。

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屬性:用來獲取或設置文件對話框顯示的初始目錄,默認值為空字符串("")。 - 17 -

 

(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#的幫助文件。

用戶自定義對話框

除了可以使用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屬性。 - 21 -

(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事件:在鼠標指針離開控件時將發生該事件。 - 23 –

 

 

28、排列窗體上的控件

對齊

窗體對齊的步驟:

1.選擇要對齊的控件

2.在VS菜單中,選擇"格式"→"對齊"選項,單擊想要的對齊方式

注:你選擇的第一個控件是主控件,其他的控件都與他對齊。

 

使用Anchor

Anchor是錨定的意思,它的作用就是設置控件相對於窗體的某個邊緣的距離保持不變,也就是說與窗體一起動態調整控件的大小,這是每個控件都有的屬性。

使用步驟:

1.選擇要錨定的控件2.在"屬性"窗口中,單擊Anchor屬性右邊的箭頭,顯示編輯器

3.在顯示的十字行上選擇或清除控件錨定的邊4.單擊Anchor屬性名,關閉編輯器

使用Dock

Dock是讓控件始終保持在窗體的邊緣,或者填充窗體

使用步驟:

    什麼是MDI

    要在一個窗口中打開多個文件,就要使用MDI(多文檔界面)應用程序

    MDI主要由兩種窗口組成:父窗口和子窗口

    MDI的幾個顯著的特點:

 

如何創建MDI

創建MDI步驟:

為父窗體添加子窗體列表

 

 

 

使用WinForms高級控件

 

工具條(ToolStrip):

使用工具條可以創建功能非常強大的工具欄,工具條控件可以包含按鈕、標簽、下拉按鈕、文本框、組合框等,可以顯示文字、圖片或文字加圖片。

狀態條(StatusStrip):狀態條常常放在窗體的底部,用來顯示一些基本信息。在狀態條控件中可以包含標簽、下拉按鈕等,常常和工具條、菜單欄等配合使用。工具條和狀態條的主要屬性和事件

屬性

說明

ImageScalingSize 

工具條或狀態條中的項顯示的圖像的大小

Items 

在工具條或狀態條上顯示的項的集合

DisplayStyle 

設置圖像和文本的顯示方式,包括顯示文本、顯示圖像、顯示文本和圖像或什麼都不顯示

Text 

按鈕\標簽上顯示的文本

Image 

按鈕/標簽上顯示的圖片

事件

說明

Click 

單擊按鈕/標簽時,觸發該事件

選項卡(TabControl)

這個控件可以顯示多個選項卡頁,選項卡中可以包含圖片和其他控件選項卡的主要屬性

屬性

說明

MultiLine 

是否可以顯示多行選項卡

TabPages 

包含的選項卡頁的集合

SelectedIndex 

當前所選選項卡頁的索引值

圖片框(PictureBox):

用於顯示位圖、DIF、JEPG等格式的圖片或這圖標圖片框的主要屬性

屬性

方法

Image 

圖片框顯示的圖片

SizeMode 

指定如何處理圖片的位置和控件的大小

 

圖像列表框(ImageList):

用於儲存Windows窗體其他控件使用的圖像圖像列表框的主要屬性

屬性

方法

Images 

儲存在圖像列表中的所有圖像

ImageSize 

圖像列表中圖像的大小

TransparentColor 

被視為透明的顏色

Image中存放的圖像就像存放在數組中一樣,每個圖像都有一個索引值,從0開始,使用Image[索引值],可以定位到一個圖像


C:\

可以的

參考這個對C盤進行清理:
1.關閉系統還原:我的電腦屬性/系統還原/關閉所有磁盤上的系統還原,但是以後就不能用系統還原了!
2.關閉系統休眠:控制面板/電源/休眠/在啟動系統休眠前面的勾去掉
3.移動虛擬內存,我的電腦屬性/高級/性能/設置/高級/更改/選C盤也就是系統盤,選無分頁面,然後把虛擬內存設置到其磁盤,要剩余磁盤空間多的磁盤,比如D,E,F等盤. 設成內存的1.5~2.5倍,大小可設成一樣!
5.清理IE臨時文件夾,internet選項,刪除臨時文件和脫機文件
6.刪除系統日志和程序日志,我的電腦/控制面板/管理工具/計算機管理/事件查看器/應用程序,鼠標右鍵/清除所事件,在依次清除系統日志
7.清理系統緩存:2000系統是:C:\WINNT\system32\dllcache下的所有文件
XP系統是:C:\windows\system32\dllcache下的所有文件 清理系統緩存(打開我的電腦/工具/文件和文件夾選項/隱藏受保護的系統文件的勾去掉在把顯示全部文件勾上)。也可以直接運行sfc.exe /purgecache命令自動刪除。
8.清空回收站
9.刪除c:\windows\SoftwareDistribution\Download下的文件(系統更新時下載的文件如你裝好了更新也就沒有用了)
10.刪除c:\windows\RegisteredPackages下所有目錄
11.刪除C:\WINDOWS\Downloaded Program Files下所有的文件
12.我的電腦 文件夾選項 查看 隱藏已知受系統保護的文件勾去掉,顯示所有文件勾上確定。
13.刪除c:\windows\所有帶$8882305$的文件(系統更新後的備份文件)

zhidao.baidu.com/question/11035955.html
zhidao.baidu.com/question/12223613.html
zhidao.baidu.com/question/14874715.html
......余下全文>>
 

C:\

可以的

參考這個對C盤進行清理:
1.關閉系統還原:我的電腦屬性/系統還原/關閉所有磁盤上的系統還原,但是以後就不能用系統還原了!
2.關閉系統休眠:控制面板/電源/休眠/在啟動系統休眠前面的勾去掉
3.移動虛擬內存,我的電腦屬性/高級/性能/設置/高級/更改/選C盤也就是系統盤,選無分頁面,然後把虛擬內存設置到其磁盤,要剩余磁盤空間多的磁盤,比如D,E,F等盤. 設成內存的1.5~2.5倍,大小可設成一樣!
5.清理IE臨時文件夾,internet選項,刪除臨時文件和脫機文件
6.刪除系統日志和程序日志,我的電腦/控制面板/管理工具/計算機管理/事件查看器/應用程序,鼠標右鍵/清除所事件,在依次清除系統日志
7.清理系統緩存:2000系統是:C:\WINNT\system32\dllcache下的所有文件
XP系統是:C:\windows\system32\dllcache下的所有文件 清理系統緩存(打開我的電腦/工具/文件和文件夾選項/隱藏受保護的系統文件的勾去掉在把顯示全部文件勾上)。也可以直接運行sfc.exe /purgecache命令自動刪除。
8.清空回收站
9.刪除c:\windows\SoftwareDistribution\Download下的文件(系統更新時下載的文件如你裝好了更新也就沒有用了)
10.刪除c:\windows\RegisteredPackages下所有目錄
11.刪除C:\WINDOWS\Downloaded Program Files下所有的文件
12.我的電腦 文件夾選項 查看 隱藏已知受系統保護的文件勾去掉,顯示所有文件勾上確定。
13.刪除c:\windows\所有帶$8882305$的文件(系統更新後的備份文件)

zhidao.baidu.com/question/11035955.html
zhidao.baidu.com/question/12223613.html
zhidao.baidu.com/question/14874715.html
......余下全文>>
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved