1、窗體Form
窗口就是打開程序我們所面對的一個(gè)面板,里面可以添加各種控件,如下圖所示,我們可以在屬性欄設(shè)置其標(biāo)題名稱、圖標(biāo)、大小等。
雙擊標(biāo)題框,會(huì)生成Load函數(shù),也可以到事件里面去找
Load函數(shù)是窗口生成后需要執(zhí)行的事件函數(shù)。
可以在里面加一些初始化函數(shù)。
1.1 常用屬性
(1)Name屬性:用來獲取或設(shè)置窗體的名稱,在應(yīng)用程序中可通過Name屬性來引用窗體。
(2) WindowState屬性: 用來獲取或設(shè)置窗體的窗口狀態(tài)。 取值有三種: Normal (窗體正常顯示)、 Minimized(窗體以最小化形式顯示)和 Maximized(窗體以最大化形式顯示)。
(3)StartPosition屬性:用來獲取或設(shè)置運(yùn)行時(shí)窗體的起始位置。
(4)Text屬性:該屬性是一個(gè)字符串屬性,用來設(shè)置或返回在窗口標(biāo)題欄中顯示的文字。
(5)Width屬性:用來獲取或設(shè)置窗體的寬度。
(6)Height屬性:用來獲取或設(shè)置窗體的高度。
(7)Left屬性:用來獲取或設(shè)置窗體的左邊緣的x坐標(biāo)(以像素為單位)。
(8)Top屬性:用來獲取或設(shè)置窗體的上邊緣的y坐標(biāo)(以像素為單位)。
(9)ControlBox屬性:用來獲取或設(shè)置一個(gè)值,該值指示在該窗體的標(biāo)題欄中是否顯示控制框。值為true
時(shí)將顯示控制框,值為false時(shí)不顯示控制框。
(10)MaximizeBox屬性:用來獲取或設(shè)置一個(gè)值,該值指示是否在窗體的標(biāo)題欄中顯示最大化按鈕。值為 true時(shí)顯示最大化按鈕,值為false時(shí)不顯示最大化按鈕。
(11)MinimizeBox 屬性:用來獲取或設(shè)置一個(gè)值,該值指示是否在窗體的標(biāo)題欄中顯示最小化按鈕。值為 true時(shí)顯示最小化按鈕,值為false時(shí)不顯示最小化按鈕。
(12)AcceptButton 屬性:該屬性用來獲取或設(shè)置一個(gè)值,該值是一個(gè)按鈕的名稱,當(dāng)按 Enter 鍵時(shí)就相當(dāng)于單擊了窗體上的該按鈕。
(13)CancelButton 屬性:該屬性用來獲取或設(shè)置一個(gè)值,該值是一個(gè)按鈕的名稱,當(dāng)按 Esc 鍵時(shí)就相當(dāng)于單擊了窗體上的該按鈕。
(14)Modal 屬性:該屬性用來設(shè)置窗體是否為有模式顯示窗體。如果有模式地顯示該窗體,該屬性值為true;否則為 false。當(dāng)有模式顯示窗體時(shí),只能對模式窗體上的對象進(jìn)行輸入。必須隱藏或關(guān)閉模式窗體(通常是響應(yīng)某個(gè)用戶操作),然后才能對另一窗體進(jìn)行輸入。有模式顯示的窗體通常用做應(yīng)用程序中的對話框。
(15)ActiveControl屬性:用來獲取或設(shè)置容器控件中的活動(dòng)控件。窗體也是一種容器控件。
(16)ActiveMdiChild屬性:用來獲取多文檔界面(MDI)的當(dāng)前活動(dòng)子窗口。
(17)AutoScroll 屬性:用來獲取或設(shè)置一個(gè)值,該值指示窗體是否實(shí)現(xiàn)自動(dòng)滾動(dòng)。如果此屬性值設(shè)置為true,則當(dāng)任何控件位于窗體工作區(qū)之外時(shí),會(huì)在該窗體上顯示滾動(dòng)條。另外,當(dāng)自動(dòng)滾動(dòng)打開時(shí),窗體的工作區(qū)自動(dòng)滾動(dòng),以使具有輸入焦點(diǎn)的控件可見。
(18)BackColor屬性:用來獲取或設(shè)置窗體的背景色。
(19)BackgroundImage屬性:用來獲取或設(shè)置窗體的背景圖像。
(20)Enabled 屬性:用來獲取或設(shè)置一個(gè)值,該值指示控件是否可以對用戶交互作出響應(yīng)。如果控件可以對用戶交互作出響應(yīng),則為 true;否則為false。默認(rèn)值為true。
(21)Font屬性:用來獲取或設(shè)置控件顯示的文本的字體。
(22)ForeColor屬性:用來獲取或設(shè)置控件的前景色。
(23)IsMdiChild屬性:獲取一個(gè)值,該值指示該窗體是否為多文檔界面(MDI)子窗體。值為 true時(shí),是子窗體,值為false時(shí),不是子窗體。
(24)IsMdiContainer 屬性:獲取或設(shè)置一個(gè)值,該值指示窗體是否為多文檔界面(MDI)中的子窗體的容器。值為true時(shí),是子窗體的容器,值為false時(shí),不是子窗體的容器。
(25)KeyPreview屬性:用來獲取或設(shè)置一個(gè)值,該值指示在將按鍵事件傳遞到具有焦點(diǎn)的控件前,窗體是否將接收該事件。值為true時(shí),窗體將接收按鍵事件,值為false時(shí),窗體不接收按鍵事件。
(26)MdiChildren屬性:數(shù)組屬性。數(shù)組中的每個(gè)元素表示以此窗體作為父級(jí)的多文檔界面(MDI)子窗體。
(27)MdiParent屬性:用來獲取或設(shè)置此窗體的當(dāng)前多文檔界面(MDI)父窗體。
(28)ShowInTaskbar屬性:用來獲取或設(shè)置一個(gè)值,該值指示是否在Windows任務(wù)欄中顯示窗體。
(29)Visible屬性:用于獲取或設(shè)置一個(gè)值,該值指示是否顯示該窗體或控件。值為true時(shí)顯示窗體或控件,為 false時(shí)不顯示。
(30)Capture屬性:如果該屬性值為true,則鼠標(biāo)就會(huì)被限定只由此控件響應(yīng),不管鼠標(biāo)是否在此控件的范圍內(nèi)。
1.2 常用方法
下面介紹一些窗體的最常用方法。
(1)Show方法:該方法的作用是讓窗體顯示出來,其調(diào)用格式為:
窗體名.Show();
其中窗體名是要顯示的窗體名稱。
(2)Hide方法:該方法的作用是把窗體隱藏出來,其調(diào)用格式為:
窗體名.Hide();
其中窗體名是要隱藏的窗體名稱。
(3)Refresh方法:該方法的作用是刷新并重畫窗體,其調(diào)用格式為:
窗體名.Refresh();
其中窗體名是要刷新的窗體名稱。
(4)Activate方法:該方法的作用是激活窗體并給予它焦點(diǎn)。其調(diào)用格式為:
窗體名.Activate();
其中窗體名是要激活的窗體名稱。
(5)Close方法:該方法的作用是關(guān)閉窗體。其調(diào)用格式為:
窗體名.Close();
其中窗體名是要關(guān)閉的窗體名稱。
(6)ShowDialog方法:該方法的作用是將窗體顯示為模式對話框。其調(diào)用格式為:
窗體名.ShowDialog();
1.3 常用事件
(1)Load事件:該事件在窗體加載到內(nèi)存時(shí)發(fā)生,即在第一次顯示窗體前發(fā)生。
雙擊窗體,就會(huì)生成窗體加載事件函數(shù)了,例如:
private void Form1_Load(object sender, EventArgs e)
{
}
(2)Activated事件:該事件在窗體激活時(shí)發(fā)生。
(3)Deactivate事件:該事件在窗體失去焦點(diǎn)成為不活動(dòng)窗體時(shí)發(fā)生。
(4)Resize事件:該事件在改變窗體大小時(shí)發(fā)生。
(5)Paint事件:該事件在重繪窗體時(shí)發(fā)生。
(6)Click事件:該事件在用戶單擊窗體時(shí)發(fā)生。
(7)DoubleClick事件:該事件在用戶雙擊窗體時(shí)發(fā)生。
(8)Closed事件:該事件在關(guān)閉窗體時(shí)發(fā)生。
2、標(biāo)簽Label
Label控件,在代碼上沒什么用處。主要是用于界面提示用的,它有一個(gè)Text屬性,用于輸入用戶提示信息的,可以在屬性窗口更改即可。
比如下面的端口號(hào),波特率等就是Label控件。
2.1、常用屬性:
(1)Text屬性:用來設(shè)置或返回標(biāo)簽控件中顯示的文本信息。
(2)AutoSize 屬性:用來獲取或設(shè)置一個(gè)值,該值指示是否自動(dòng)調(diào)整控件的大小以完整顯示其內(nèi)容。取值為 true時(shí),控件將自動(dòng)調(diào)整到剛好能容納文本時(shí)的大小,取值為false時(shí),控件的大小為設(shè)計(jì)時(shí)的大小。默認(rèn)值為false。
(3)Anchor 屬性:用來確定此控件與其容器控件的固定關(guān)系的。所謂容器控件指的是這樣一種情況:往往在控件之中還有一個(gè)控件,例如最典型的就是窗體控件中會(huì)包含很多的控件,像標(biāo)簽控件、文本框等。這時(shí)稱包含控件的控件為容器控件或父控件,而父控件稱為子控件。這時(shí)將遇到一個(gè)問題,即子控件與父控件的位置關(guān)系問題,即當(dāng)父控件的位置、大小變化時(shí),子控件按照什么樣的原則改變其位置、大小。Anchor屬性就規(guī)定了這個(gè)原則。對于 Anchor 屬性,可以設(shè)定 Top、Bottom、Right、Left 中的任意幾種,設(shè)置的方法是在屬性窗口中單擊Anchor屬性右邊的箭頭,將會(huì)出現(xiàn)如圖 9-6 的窗口,通過它可設(shè)置 Anchor 屬性值。圖 9-6 中選中變黑的方位即為設(shè)定的方位控制,即圖中所示的為 Left、Right、Bottom。此時(shí),如果父窗口變化,子窗口將保證其左邊緣與容器左邊的距離、上邊緣與容器上邊的距離、底邊與容器底邊的距離等不變,效果如圖9-7 所示。可見隨著窗體的大小變化, Label控件也會(huì)隨著變 。 而 不 變 的 則 是Archor中所規(guī)定的邊緣與相應(yīng)的父控件邊緣的距離。
(4)BackColor屬性:
用來獲取或設(shè)置控件的背景色。當(dāng)該屬性值設(shè)置為 Color.Transparent 時(shí),標(biāo)簽將透明顯示,即背景色不再顯示出來。
(5)BorderStyle 屬性:用來設(shè)置或返回邊框。有三種選擇:BorderStyle.None 為無邊框(默認(rèn)),BorderStyle.FixedSingle 為固
定單邊框,BorderStyle.Fixed3D 為三維邊框。
(6)TabIndex屬性:用來設(shè)置或返回對象的Tab鍵順序。
(7)Enabled 屬性:用來設(shè)置或返回控件的狀態(tài)。值為 true 時(shí)允許使用控件,值為 false 時(shí)禁止使用控件,此時(shí)標(biāo)簽呈暗淡色,一
般在代碼中設(shè)置。圖9-8 邊框效果圖另外,標(biāo)簽還具有Visible、ForeColor、Font等屬性,具體含義請參考窗體的相應(yīng)屬性。
3、文本框TextBox
3.1、主要屬性:
(1)Text屬性:Text屬性是文本框最重要的屬性,因?yàn)橐@示的文本就包含在Text屬性中。默認(rèn)情況下,最多可在一個(gè)文本框中輸入2048個(gè)字符。如果將MultiLine屬性設(shè)置為true,則最多可輸入32KB 的文本。Text屬性可以在設(shè)計(jì)時(shí)使用【屬性】窗口設(shè)置,也可以在運(yùn)行時(shí)用代碼設(shè)置或者通過用戶輸入來設(shè)置??梢栽谶\(yùn)行時(shí)通過讀取Text屬性來獲得文本框的當(dāng)前內(nèi)容。
(2)MaxLength 屬性:用來設(shè)置文本框允許輸入字符的最大長度,該屬性值為 0 時(shí),不限制輸入的字符數(shù)。
(3)MultiLine 屬性:用來設(shè)置文本框中的文本是否可以輸入多行并以多行顯示。值為 true 時(shí),允許多行顯示。值為false時(shí)不允許多行顯示,一旦文本超過文本框?qū)挾葧r(shí),超過部分不顯示。
(4)HideSelection屬性:用來決定當(dāng)焦點(diǎn)離開文本框后,選中的文本是否還以選中的方式顯示,值為true,則不以選中的方式顯示,值為 false將依舊以選中的方式顯示。
(5)ReadOnly屬性:用來獲取或設(shè)置一個(gè)值,該值指示文本框中的文本是否為只讀。值為 true時(shí)為只讀,值為 false時(shí)可讀可寫。
(6)PasswordChar 屬性:是一個(gè)字符串類型,允許設(shè)置一個(gè)字符,運(yùn)行程序時(shí),將輸入到 Text 的內(nèi)容全部顯示為該屬性值,從而起到保密作用,通常用來輸入口令或密碼。
(7) ScrollBars屬性: 用來設(shè)置滾動(dòng)條模式, 有四種選擇: ScrollBars.None (無滾動(dòng)條), ScrollBars.Horizontal(水平滾動(dòng)條),ScrollBars.Vertical(垂直滾動(dòng)條),ScrollBars.Both(水平和垂直滾動(dòng)條)。
注意:只有當(dāng)MultiLine屬性為true時(shí),該屬性值才有效。在WordWrap屬性值為true時(shí),水平滾動(dòng)條將不起作用
如果ScrollBars屬性設(shè)置為Both沒有出現(xiàn)水平滾動(dòng)條,則查看WordWrap屬性是否設(shè)置為false。
(8)SelectionLength屬性:用來獲取或設(shè)置文本框中選定的字符數(shù)。只能在代碼中使用,值為0 時(shí),表示未選中任何字符。
(9)SelectionStart屬性:用來獲取或設(shè)置文本框中選定的文本起始點(diǎn)。只能在代碼中使用,第一個(gè)字符的位置為0,第二個(gè)字符的位置為1,依此類推。
(10)SelectedText 屬性:用來獲取或設(shè)置一個(gè)字符串,該字符串指示控件中當(dāng)前選定的文本。只能在代碼中使用。
(11)Lines:該屬性是一個(gè)數(shù)組屬性,用來獲取或設(shè)置文本框控件中的文本行。即文本框中的每一行存放在 Lines數(shù)組的一個(gè)元素中。
(12)Modified:用來獲取或設(shè)置一個(gè)值,該值指示自創(chuàng)建文本框控件或上次設(shè)置該控件的內(nèi)容后,用戶是否修改了該控件的內(nèi)容。值為true表示修改過,值為 false表示沒有修改過。
(13)TextLength屬性:用來獲取控件中文本的長度。
(14)WordWrap:用來指示多行文本框控件在輸入的字符超過一行寬度時(shí)是否自動(dòng)換行到下一行的開始,值為 true,表示自動(dòng)換到下一行的開始,值為false表示不自動(dòng)換到下一行的開始。
3.2、常用方法:
(1)AppendText方法:把一個(gè)字符串添加到文件框中文本的后面,調(diào)用的一般格式如下:
文本框?qū)ο?AppendText(str)參數(shù) str是要添加的字符串。
(2)Clear方法:從文本框控件中清除所有文本。調(diào)用的一般格式如下:
文本框?qū)ο?Clear()該方法無參數(shù)。
(3)Focus方法:是為文本框設(shè)置焦點(diǎn)。如果焦點(diǎn)設(shè)置成功,值為 true,否則為false。調(diào)用的一般格式如下:
文本框?qū)ο?Focus()該方法無參數(shù)。
(4)Copy方法:將文本框中的當(dāng)前選定內(nèi)容復(fù)制到剪貼板上。調(diào)用的一般格式如下:
文本框?qū)ο?Copy()該方法無參數(shù)。
(5)Cut方法:將文本框中的當(dāng)前選定內(nèi)容移動(dòng)到剪貼板上。調(diào)用的一般格式如下:
文本框?qū)ο?Cut()該方法無參數(shù)。
(6)Paste方法:用剪貼板的內(nèi)容替換文本框中的當(dāng)前選定內(nèi)容。調(diào)用的一般格式如下:
文本框?qū)ο?Paste()該方法無參數(shù)。
(7)Undo 方法:撤銷文本框中的上一個(gè)編輯操作。調(diào)用的一般格式如下:
文本框?qū)ο?Undo()該方法無參數(shù)。
(8)ClearUndo方法:從該文本框的撤銷緩沖區(qū)中清除關(guān)于最近操作的信息,根據(jù)應(yīng)用程序的狀態(tài),可以使用此方法防止重復(fù)執(zhí)行撤銷操作。調(diào)用的一般格式如下:
文本框?qū)ο?ClearUndo()該方法無參數(shù)。
(9)Select方法:用來在文本框中設(shè)置選定文本。調(diào)用的一般格式如下:
文本框?qū)ο?Select(start,length)
該方法有兩個(gè)參數(shù),第一個(gè)參數(shù)start用來設(shè)定文本框中當(dāng)前選定文本的第一個(gè)字符的位置,第二個(gè)參數(shù)length用來設(shè)定要選擇的字符數(shù)。
(10)SelectAll方法:用來選定文本框中的所有文本。調(diào)用的一般格式如下:
文本框?qū)ο?SelectAll()該方法無參數(shù)。
textBox1.Text = "hello world"; // text屬性,就是用來表示文本框中的文本的??梢暂敵鑫谋窘o用戶看,或者用戶自己在文本框輸入文本信息
textBox1.ReadOnly = true; // ReadOnly屬性,把文本框設(shè)置為只讀,這樣用戶就不能輸入文本了
textBox1.Clear(); // Clear方法,就是清除文本框中的所有文本
textBox1.AppendText("1234567"); // 在文本框中追加文本內(nèi)容,不會(huì)把文本框原有的文本覆蓋
3.3、常用事件:
(1)GotFocus事件:該事件在文本框接收焦點(diǎn)時(shí)發(fā)生。
(2)LostFocus事件:該事件在文本框失去焦點(diǎn)時(shí)發(fā)生。
(3)TextChanged事件:該事件在Text屬性值更改時(shí)發(fā)生。無論是通過編程修改還是用戶交互更改文本框的 Text屬性值,均會(huì)引發(fā)此事件。
4、富文本RichTextBox
RichTextBox是一種既可以輸入文本、 又可以編輯文本的文字處理控件, 與TextBox控件相比, RichTextBox控件的文字處理功能更加豐富, 不僅可以設(shè)定文字的顏色、 字體, 還具有字符串檢索功能。 另外, RichTextBox控件還可以打開、編輯和存儲(chǔ).rtf格式文件、ASCII文本格式文件及Unicode編碼格式的文件。
4.1、常用屬性
上面介紹的 TextBox 控件所具有的屬性,RichTextBox 控件基本上都具有,除此之外,該控件還具有一些其他屬性。
(1)RightMargin屬性:用來設(shè)置或獲取右側(cè)空白的大小,單位是像素。通過該屬性可以設(shè)置右側(cè)空白,如希望右側(cè)空白為50像素,可使用如下語句:
RichTextBox1.RightMargin=RichTextBox1.Width-50;
(2)Rtf屬性:用來獲取或設(shè)置RichTextBox控件中的文本,包括所有RTF格式代碼。可以使用此屬性將RTF格式文本放到控件中以進(jìn)行顯示,或提取控件中的RTF格式文本。此屬性通常用于在RichTextBox控件和其他RTF源(如 MicrosoftWord或 Windows寫字板)之間交換信息。
(3)SelectedRtf 屬性:用來獲取或設(shè)置控件中當(dāng)前選定的 RTF 格式的格式文本。此屬性使用戶得以獲取控件中的選定文本,包括RTF格式代碼。如果當(dāng)前未選定任何文本,給該屬性賦值將把所賦的文本插入到插入點(diǎn)處。如果選定了文本,則給該屬性所賦的文本值將替換掉選定文本。
(4)SelectionColor屬性:用來獲取或設(shè)置當(dāng)前選定文本或插入點(diǎn)處的文本顏色。
(5)SelectionFont屬性:用來獲取或設(shè)置當(dāng)前選定文本或插入點(diǎn)處的字體。
4.2、常用方法
前面介紹的 TextBox 控件所具有的方法,RichTextBox 控件基本上都具有,除此之外,該控件還具有一些其他方法。
(1)Redo方法:用來重做上次被撤銷的操作。調(diào)用的一般格式如下:
RichTextBox對象.Redo()
該方法無參數(shù)。
(2)Find方法:用來從RichTextBox控件中查找指定的字符串。經(jīng)常使用的調(diào)用格式如下:
[格式1]:
RichTextBox對象.Find(str)
[功能]:在指定的“RichTextBox”控件中查找文本,并返回搜索文本的第一個(gè)字符在控件內(nèi)的位置。如果未找到搜索字符串或者str參數(shù)指定的搜索字符串為空,則返回值為1。
[格式2]:
RichTextBox對象.Find(str,RichTextBoxFinds)
[功能]:在“RichTextBox 對象”指定的文本框中搜索 str 參數(shù)中指定的文本,并返回文本的第一個(gè)字符在控件內(nèi)的位置。如果返回負(fù)值,則未找到所搜索的文本字符串。還可以使用此方法搜索特定格式的文本。
參數(shù)RichTextBoxFinds指定如何在控件中執(zhí)行文本搜索,其取值及其含義如表9-4 所示。
[格式3]:
RichTextBox對象.Find(str,start,RichTextBoxFinds)
[功能]:這里Find方法與前面的格式2 基本類似,不同的只是通過設(shè)置控件文本內(nèi)的搜索起始位置來縮小文本搜索范圍,start參數(shù)表示開始搜索的位置。此功能使用戶得以避開可能已搜索過的文本或已經(jīng)知道不包含要搜索的特定文本的文本。如果在options參數(shù)中指定了RichTextBoxFinds.Reverse值,則 start參數(shù)的值將指示反向搜索結(jié)束的位置,因?yàn)樗阉魇菑奈臋n底部開始的。
(3)SaveFile方法:用來把RichTextBox中的信息保存到指定的文件中,調(diào)用格式有以下三種。
[格式1]:
RichTextBox對象名.SaveFile(文件名);
[功能]:將 RichTextBox控件中的內(nèi)容保存為RTF格式文件中。
[格式2]:
RichTextBox對象名.SaveFile(文件名,文件類型);
[功能]:將 RichTextBox控件中的內(nèi)容保存為“文件類型”指定的格式文件中。
[格式3]:
RichTextBox對象名.SaveFile(數(shù)據(jù)流,數(shù)據(jù)流類型);
[功能]:將 RichTextBox控件中的內(nèi)容保存為“數(shù)據(jù)流類型”指定的數(shù)據(jù)流類型文件中。
其中,文件類型或數(shù)據(jù)流類型的取值及含義如表9-5所示。
(4)LoadFile方法:使用LoadFile方法可以將文本文件、RTF文件裝入RichTextBox控件。主要的調(diào)用格
式有以下三種。
[格式1]:
RichTextBox對象名.LoadFile(文件名);
[功能]:將RTF格式文件或標(biāo)準(zhǔn)ASCII文本文件加載到RichTextBox控件中。
[格式2]:
RichTextBox對象名.LoadFile(數(shù)據(jù)流,數(shù)據(jù)流類型);
[功能]:將現(xiàn)有數(shù)據(jù)流的內(nèi)容加載到RichTextBox控件中。
[格式3]:
RichTextBox對象名.LoadFile(文件名,文件類型);
[功能]:將特定類型的文件加載到RichTextBox控件中。
注意:文件類型和數(shù)據(jù)流格式見表9-5。
5、NumericUpDown 控件
【W(wǎng)indows 窗體】控件組中的 NumericUpDown 控件看起來像是一個(gè)文本框與一對用戶可單擊以調(diào)整值的箭頭的組合??梢酝ㄟ^單擊向上和向下按鈕、按向上和向下箭頭鍵來增大和減小數(shù)字,也可以直接輸入數(shù)字。單擊向上箭頭鍵時(shí),值向最大值方向增加;單擊向下箭頭鍵時(shí),值向最小值方向減少。
5.1 常用屬性
(1)DecimalPlaces:獲取或設(shè)置該控件中顯示的小數(shù)位數(shù)。
(2)Hexadecimal:獲取或設(shè)置一個(gè)值,該值指示該控件是否以十六進(jìn)制格式顯示所包含的值。
(3)Increment:獲取或設(shè)置單擊向上或向下按鈕時(shí),該控件遞增或遞減的值。
(4)Maximum:獲取或設(shè)置該控件的最大值。
(5)Minimum:獲取或設(shè)置該控件的最小值。
(6)Value:獲取或設(shè)置該控件的當(dāng)前值。
與 TextBox控件一樣,NumericUpDown控件的常用事件有:ValueChanged、GotFocus、LostFocus等。
按鈕類控件
6、按鈕Button
Button控件又稱按鈕控件,是 Windows應(yīng)用程序中最常用的控件之一,通常用它來執(zhí)行命令。如果按鈕具有焦點(diǎn),就可以使用鼠標(biāo)左鍵、Enter鍵或空格鍵觸發(fā)該按鈕的Click事件。通過設(shè)置窗體的AcceptButton 或 CancelButton 屬性,無論該按鈕是否有焦點(diǎn),都可以使用戶通過按 Enter 或 Esc 鍵來觸發(fā)按鈕的 Click 事件。一般不使用 Button 控件的方法。Button 控件也具有許多如 Text、ForeColor 等的常規(guī)屬性,此處不再介紹,只介紹該控件有特色的屬性。以后介紹的控件也采用同樣的方法來處理。
6.1、常用屬性
(1)DialogResult屬性:當(dāng)使用ShowDialog方法顯示窗體時(shí),可以使用該屬性設(shè)置當(dāng)用戶按了該按鈕后,ShowDialog方法的返回值。值有:OK、Cancel、Abort、Retry、Ignore、Yes、No等。
(2)Image屬性:用來設(shè)置顯示在按鈕上的圖像。
(3)FlatStyle屬性:用來設(shè)置按鈕的外觀。
6.2、常用事件:
(1)Click事件:當(dāng)用戶用鼠標(biāo)左鍵單擊按鈕控件時(shí),將發(fā)生該事件。
雙擊按鈕,就會(huì)自動(dòng)生成一個(gè)對應(yīng)的點(diǎn)擊事件函數(shù):
private void button1_Click(object sender, EventArgs e)
{
}
(2)MouseDown事件:當(dāng)用戶在按鈕控件上按下鼠標(biāo)按鈕時(shí),將發(fā)生該事件。
(3)MouseUp事件:當(dāng)用戶在按鈕控件上釋放鼠標(biāo)按鈕時(shí),將發(fā)生該事件。
7、分組框GroupBox
GroupBox控件又稱為分組框,該控件常用于為其他控件提供可識(shí)別的分組,其典型的用法之一就是給RadioButton控件分組??梢酝ㄟ^分組框的Text屬性為分組框中的控件向用戶提供提示信息。設(shè)計(jì)時(shí),向GroupBox 控件中添加控件的方法有兩種:一是直接在分組框中繪制控件;二是把某一個(gè)已存在的控件復(fù)制到剪貼板上,然后選中分組框,再執(zhí)行粘貼操作即可。位于分組框中的所有控件隨著分組框的移動(dòng)而一起移動(dòng),隨著分組框的刪除而全部刪除,分組框的Visible屬性和Enabled屬性也會(huì)影響到分組框中的所有控件。分組框的最常用的屬性是Text,一般用來給出分組提示。
8、單選按鈕RadioButton
RadioButton又稱單選按鈕,其在工具箱中的圖標(biāo)為 ,單選按鈕通常成組出現(xiàn),用于提供兩個(gè)或多個(gè)互斥選項(xiàng),即在一組單選鈕中只能選擇一個(gè),如圖所示:
8.1、常用屬性:
(1)Checked屬性:用來設(shè)置或返回單選按鈕是否被選中,選中時(shí)值為true,沒有選中時(shí)值為false。
(2)AutoCheck 屬性:如果 AutoCheck 屬性被設(shè)置為 true(默認(rèn)),那么當(dāng)選擇該單選按鈕時(shí),將自動(dòng)清除該組中所有其他單選按鈕。對一般用戶來說,不需改變該屬性,采用默認(rèn)值(true)即可。
(3)Appearance 屬性:用來獲取或設(shè)置單選按鈕控件的外觀。當(dāng)其取值為 Appearance.Button 時(shí),將使單選按鈕的外觀像命令按鈕一樣:當(dāng)選定它時(shí),它看似已被按下。當(dāng)取值為 Appearance.Normal 時(shí),就是默認(rèn)的單選按鈕的外觀。
(4)Text屬性:用來設(shè)置或返回單選按鈕控件內(nèi)顯示的文本,該屬性也可以包含訪問鍵,即前面帶有“&”符號(hào)的字母,這樣用戶就可以通過同時(shí)按Alt鍵和訪問鍵來選中控件。
8.2、常用事件:
(1)Click事件:當(dāng)單擊單選按鈕時(shí),將把單選按鈕的Checked屬性值設(shè)置為true,同時(shí)發(fā)生Click事件。
(2)CheckedChanged事件:當(dāng)Checked屬性值更改時(shí),將觸發(fā)CheckedChanged事件。
9、復(fù)選框CheckBox
CheckBox控件的常用屬性如下。
(1)TextAlign屬性:用來設(shè)置控件中文字的對齊方式,有9種選擇,如圖9-16 所示。從上到下、從左至右分別是:ContentAlignment.TopLeft、ContentAlignment.TopCenter、ContentAlignment.TopRight、ContentAlignment.MiddleLeft、ContentAlignment.MiddleCenter、ContentAlignment.MiddleRight、ContentAlignment.BottomLeft、ContentAlignment.BottomCenter
和 ContentAlignment.BottomRight。該屬性的默認(rèn)值為ContentAlignment.MiddleLeft,即文字左對齊、居控件垂直方向中央。
(2)ThreeState屬性:用來返回或設(shè)置復(fù)選框是否能表示三種狀態(tài),如果屬性值為true時(shí),表示可以表示三種狀態(tài)—選中、沒選中和中間態(tài)(CheckState.Checked、CheckState.Unchecked 和 CheckState.Indeterminate),屬性值為false時(shí),只能表示兩種狀態(tài)——選中和沒選中。
(3)Checked屬性:用來設(shè)置或返回復(fù)選框是否被選中,值為true時(shí),表示復(fù)選框被選中,值為false時(shí),表示復(fù)選框沒被選中。當(dāng)ThreeState屬性值為true時(shí),中間態(tài)也表示選中。
(4)CheckState 屬性:用來設(shè)置或返回復(fù)選框的狀態(tài)。在 ThreeState 屬性值為 false 時(shí),取值有CheckState.Checked或CheckState.Unchecked。在ThreeState屬性值被設(shè)置為True時(shí),CheckState還可以取值 CheckState.Indeterminate,在此時(shí),復(fù)選框顯示為淺灰色選中狀態(tài),該狀態(tài)通常表示該選項(xiàng)下的多個(gè)子選項(xiàng)未完全選中。CheckBox控件的常用事件有Click和CheckedChanged等,其含義及觸發(fā)時(shí)機(jī)與單選按鈕完成一致。
列表類控件
10、列表框ListBox
ListBox 控件又稱列表框,它顯示一個(gè)項(xiàng)目列表供用戶選擇。在列表框中,用戶一次可以選擇一項(xiàng),也可以選擇多項(xiàng)。
1、常用屬性:
(1) Items屬性: 用于存放列表框中的列表項(xiàng),是一個(gè)集合。通過該屬性,可以添加列表項(xiàng)、移除列表項(xiàng)和獲得列表項(xiàng)的數(shù)目。
(2)MultiColumn 屬性:用來獲取或設(shè)置一個(gè)值,該值指示ListBox是否支持多列。值為 true 時(shí)表示支持多列,值為 false 時(shí)不支持多列。當(dāng)使用多列模式時(shí),可以使控件得以顯示更多可見項(xiàng),如圖9-19 所示。
(3)ColumnWidth 屬性:用來獲取或設(shè)置多列 ListBox控件中列的寬度。
(4)SelectionMode屬性:用來獲取或設(shè)置在ListBox控件中選擇列表項(xiàng)的方法。當(dāng) SelectionMode屬性設(shè)置為 SelectionMode.MultiExtended 時(shí),按下 Shift 鍵的同時(shí)單擊鼠標(biāo)或者同時(shí)按 Shift 鍵和箭頭鍵之一(上箭頭鍵、下箭頭鍵、左箭頭鍵和右箭頭鍵),會(huì)將選定內(nèi)容從前一選定項(xiàng)擴(kuò)展到當(dāng)前項(xiàng)。按 Ctrl 鍵的同時(shí)單擊鼠標(biāo)將選擇或撤銷選擇列表中的某項(xiàng);當(dāng)該屬性設(shè)置為 SelectionMode.MultiSimple 時(shí),鼠標(biāo)單擊或按空格鍵將選擇或撤銷選擇列表中的某項(xiàng);該屬性的默認(rèn)值為SelectionMode.One,則只能選擇一項(xiàng)。
(5)SelectedIndex屬性:用來獲取或設(shè)置ListBox控件中當(dāng)前選定項(xiàng)的從零開始的索引。如果未選定任何項(xiàng),則返回值為1。對于只能選擇一項(xiàng)的ListBox控件,可使用此屬性確定ListBox中選定的項(xiàng)的索引。如果 ListBox 控件的 SelectionMode 屬性設(shè)置為 SelectionMode.MultiSimple 或 SelectionMode.MultiExtended,并在該列表中選定多個(gè)項(xiàng),此時(shí)應(yīng)用SelectedIndices來獲取選定項(xiàng)的索引。
(6)SelectedIndices。該屬性用來獲取一個(gè)集合,該集合包含 ListBox 控件中所有選定項(xiàng)的從零開始的索引。
(7)SelectedItem屬性:獲取或設(shè)置ListBox中的當(dāng)前選定項(xiàng)。
(8)SelectedItems屬性:獲取 ListBox控件中選定項(xiàng)的集合,通常在ListBox控件的SelectionMode屬性值設(shè)置為SelectionMode.MultiSimple或SelectionMode.MultiExtended(它指示多重選擇ListBox)時(shí)使用。
(9)Sorted屬性:獲取或設(shè)置一個(gè)值,該值指示ListBox控件中的列表項(xiàng)是否按字母順序排序。如果列表項(xiàng)按字母排序,該屬性值為true;如果列表項(xiàng)不按字母排序,該屬性值為false。默認(rèn)值為false。在向已排序的 ListBox控件中添加項(xiàng)時(shí),這些項(xiàng)會(huì)移動(dòng)到排序列表中適當(dāng)?shù)奈恢谩?/p>
(10)Text 屬性:該屬性用來獲取或搜索 ListBox 控件中當(dāng)前選定項(xiàng)的文本。當(dāng)把此屬性值設(shè)置為字符串值時(shí),ListBox 控件將在列表內(nèi)搜索與指定文本匹配的項(xiàng)并選擇該項(xiàng)。若在列表中選擇了一項(xiàng)或多項(xiàng),該屬性將返回第一個(gè)選定項(xiàng)的文本。
(11)ItemsCount屬性:該屬性用來返回列表項(xiàng)的數(shù)目。
2、常用方法:
(1)FindString方法:用來查找列表項(xiàng)中以指定字符串開始的第一個(gè)項(xiàng),有兩種調(diào)用格式。
[格式1]:
ListBox對象.FindString(s);
[功能]:在“ListBox 對象”指定的列表框中查找字符串 s,如果找到則返回該項(xiàng)從零開始的索引;如果找不到匹配項(xiàng),則返回ListBox.NoMatches。
[格式2]:
ListBox對象.FindString(s,n);
[功能]:在 ListBox 對象指定的列表框中查找字符串 s,查找的起始項(xiàng)為n+1,即 n 為開始查找的前一項(xiàng)的索引。如果找到則返回該項(xiàng)從零開始的索引;如果找不到匹配項(xiàng),則返回ListBox.NoMatches。
注意:FindString 方式只是詞語部分匹配,即要查找的字符串在列表項(xiàng)的開頭,便認(rèn)為是匹配的,如果要精確匹配,即只有在列表項(xiàng)與查找字符串完全一致時(shí)才認(rèn)為匹配,可使用FindStringExact方法,調(diào)用格式與功能與FindString基本一致。
(2)SetSelected方法:用來選中某一項(xiàng)或取消對某一項(xiàng)的選擇,調(diào)用格式及功能如下。
[格式]:
ListBox對象.SetSelected(n,l);
[功能]:如果參數(shù) l 的值是 true,則在 ListBox 對象指定的列表框中選中索引為 n 的列表項(xiàng),如果參數(shù)l 的值是 false,則索引為n 的列表項(xiàng)未被選中。
(3)Items.Add方法:用來向列表框中增添一個(gè)列表項(xiàng),調(diào)用格式及功能如下。
[格式]:
ListBox對象.Items.Add(s);
[功能]:把參數(shù)s添加到“l(fā)istBox對象”指定的列表框的列表項(xiàng)中。
(4)Items.Insert方法:用來在列表框中指定位置插入一個(gè)列表項(xiàng),調(diào)用格式及功能如下。
[格式]:
ListBox對象.Items.Insert(n,s);
[功能]:參數(shù)n代表要插入的項(xiàng)的位置索引,參數(shù) s代表要插入的項(xiàng),其功能是把s插入到“l(fā)istBox對象”指定的列表框的索引為n的位置處。
(5)Items.Remove方法:用來從列表框中刪除一個(gè)列表項(xiàng),調(diào)用格式及功能如下。
[格式]:
ListBox對象.Items.Remove(k);
[功能]:從 ListBox對象指定的列表框中刪除列表項(xiàng)s。
(6)Items.Clear方法:用來清除列表框中的所有項(xiàng)。其調(diào)用格式如下:
ListBox對象.Items.Clear();
該方法無參數(shù)。
(7)BeginUpdate方法和EndUpdate方法:這兩個(gè)方法均無參數(shù),調(diào)用格式分別如下:ListBox對象.BeginUpdate();
ListBox對象.EndUpdate();
這兩個(gè)方法的作用是保證使用 Items.Add 方法向列表框中添加列表項(xiàng)時(shí),不重繪列表框。即在向列表框添加項(xiàng)之前,調(diào)用BeginUpdate方法,以防止每次向列表框中添加項(xiàng)時(shí)都重新繪制 ListBox 控件。完成向列表框中添加項(xiàng)的任務(wù)后,再調(diào)用 EndUpdate 方法使 ListBox 控件重新繪制。
當(dāng)向列表框中添加大量的列表項(xiàng)時(shí),使用這種方法添加項(xiàng)可以防止在繪制 ListBox 時(shí)的閃爍現(xiàn)象。一個(gè)例子程序如下:
publicvoidAddToMyListBox()
{
listBox1.BeginUpdate();
for(intx=1;x<5000;x++)
{
listBox1.Items.Add(“Item”+x.ToString());
}
listBox1.EndUpdate();
}
3、常用事件:
ListBox控件常用事件有Click和 SelectedIndexChanged,SelectedIndexChanged事件在列表框中改變選中項(xiàng)時(shí)發(fā)生。
11、下拉列表ComboBox
ComboBox 控件又稱組合框,默認(rèn)情況下,組合框分兩個(gè)部分顯示:頂部是一個(gè)允許輸入文本的文本框,下面的列表框則顯示列表項(xiàng)??梢哉J(rèn)為ComboBox就是文本框與列表框的組合,與文本框和列表框的功能基本一致。與列表框相比,組合框不能多選,它無 SelectionMode 屬性。但組合框有一個(gè)名為DropDownStyle的屬性,該屬性用來設(shè)置或獲取組合框的樣式,其取值及含義如表9-10所示。
組合框的各種樣式如圖所示, 左邊的組合框能夠通過文本框輸入文本, 中間的組合框則不能輸入文本,只能選擇列表項(xiàng)。
12、復(fù)選列表框CheckedListBox
CheckedListBox控件又稱復(fù)選列表框,它擴(kuò)展了ListBox控件,它幾乎能完成列表框可以完成的所有任務(wù),并且還可以在列表項(xiàng)旁邊顯示復(fù)
選標(biāo)記。兩種控件間的其他差異在于,復(fù)選列表框只支持DrawMode.Normal,并且復(fù)選列表框只能有一項(xiàng)選定或沒有任何選定。此處需要注意一點(diǎn):選定的項(xiàng)是指窗體上突出顯示的項(xiàng),已選中的項(xiàng)是指左邊的復(fù)選框被選中的項(xiàng)。
除具有列表框的全部屬性外,它還具有以下屬性。
(1)CheckOnClick屬性:獲取或設(shè)置一個(gè)值,該值指示當(dāng)某項(xiàng)被選定時(shí)是否應(yīng)切換左側(cè)的復(fù)選框。如果立即切換選中標(biāo)記,則該屬性值為true;否則為false。默認(rèn)值為false。
(2)CheckedItems 屬性:該屬性是復(fù)選列表框中選中項(xiàng)的集合,只代表處于CheckState. Checked或CheckState.Indeterminate狀態(tài)的那些項(xiàng)。 該集合中的索引按升序排列。
(3)CheckedIndices 屬性:該屬性代表選中項(xiàng)(處于選中狀態(tài)或中間狀態(tài)的那些項(xiàng))索引的集合。
13、圖片框PictureBox
PictureBox 控件又稱圖片框,常用于圖形設(shè)計(jì)和圖像處理應(yīng)用程序,在該控件中可以加載的圖像文件格式有:位圖文件(.Bmp)、圖標(biāo)文件(.ICO)、圖元文件(.wmf)、.JPEG 和.GIF 文件。下而僅介紹該控件的常用屬性和事件。
1、常用屬性:
(1)Image屬性:用來設(shè)置控件要顯示的圖像。把文件中的圖像加載到圖片框通常采用以下三種方式。
設(shè)計(jì)時(shí)單擊Image屬性,在其后將出現(xiàn)【…】按鈕,單擊該按鈕將出現(xiàn)一個(gè)【打開】對話框,在該對話框中找到相應(yīng)的圖形文件后單擊【確定】按鈕。產(chǎn)生一個(gè)Bitmap類的實(shí)例并賦值給Image屬性。形式如下:
Bitmapp=newBitmap(圖像文件名);
pictureBox對象名.Image=p;
通過 Image.FromFile方法直接從文件中加載。形式如下:
pictureBox對象名.Image=Image.FromFile(圖像文件名);
(2)SizeMode屬性:用來決定圖像的顯示模式。
pictureBox1.Visible = false; // 該屬性可以設(shè)置圖片顯示或者不顯示
pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; // 設(shè)置顯示的大小模式
14、Timer 控件
Timer 控件又稱定時(shí)器控件或計(jì)時(shí)器控件,在工具箱中的圖標(biāo)是 ,該控件的主要作用是按一定的時(shí)間間隔周期性地觸發(fā)一個(gè)名為Tick的事件, 因此在該事件的代碼中可以放置一些需要每隔一段時(shí)間重復(fù)執(zhí)行的程序段。在程序運(yùn)行時(shí),定時(shí)器控件是不可見的。
1、常用屬性:
(1)Enabled 屬性:用來設(shè)置定時(shí)器是否正在運(yùn)行。值為 true 時(shí),定時(shí)器正在運(yùn)行,值為 false 時(shí),定時(shí)
器不在運(yùn)行。
(2)Interval屬性:用來設(shè)置定時(shí)器兩次Tick事件發(fā)生的時(shí)間間隔,以毫秒為單位。如它的值設(shè)置為500,
則將每隔0.5秒發(fā)生一個(gè)Tick事件。
2、常用方法:
(1)Start方法:用來啟動(dòng)定時(shí)器。調(diào)用的一般格式如下:
Timer控件名.start();
該方法無參數(shù)。
(2)Stop方法:用來停止定時(shí)器。調(diào)用的一般格式如下:
Timer控件名.stop();
該方法無參數(shù)。
3、常用事件:
定義器控件響應(yīng)的事件只有Tick,每隔Interval時(shí)間后將觸發(fā)一次該事件。
15、ProgressBar控件和 TrackBar控件
1.ProgressBar控件
ProgressBar 控件又稱進(jìn)度條控件,該控件在水平欄中顯示適當(dāng)長度的矩形來指示進(jìn)程的進(jìn)度。當(dāng)執(zhí)行進(jìn)程時(shí),進(jìn)度條用系統(tǒng)突出顯示顏色在水平欄中從左向右進(jìn)行填充。進(jìn)程完成時(shí),進(jìn)度欄被填滿。當(dāng)某進(jìn)程運(yùn)行時(shí)間較長時(shí),如果沒有視覺提示,用戶可能會(huì)認(rèn)為應(yīng)用程序不響應(yīng),通過在應(yīng)用程序中使用進(jìn)度條,就可以告訴用戶應(yīng)用程序正在執(zhí)行冗長的任務(wù)且應(yīng)用程序仍在響應(yīng)。
ProgressBar控件的常用屬性如下。
(1)Maximum屬性:用來設(shè)置或返回進(jìn)度條能夠顯示的最大值,默認(rèn)值為100。
(2)Minimum屬性:用來設(shè)置或返回進(jìn)度條能夠顯示的最小值,默認(rèn)值為0。
(3)Value屬性:用來設(shè)置或返回進(jìn)度條的當(dāng)前位置。
(4)Step屬性:用來設(shè)置或返回一個(gè)值,該值用來決定每次調(diào)用PerformStep 方法時(shí), Value屬性增加的幅度。例如,如果要復(fù)制一組文件,則可將 Step 屬性的值設(shè)置為 1,并將 Maximum 屬性的值設(shè)置為要復(fù)制的文件總數(shù)。在復(fù)制每個(gè)文件時(shí),可以調(diào)用PerformStep方法按Step屬性的值增加進(jìn)度欄。
ProgressBar控件的常用方法如下。
(1)Increment方法:用來按指定的數(shù)量增加進(jìn)度條的值,調(diào)用的一般格式如下:
progressBar對象.Increment(n);
其功能是把“progressBar對象”指定的進(jìn)度條對象的Value屬性值增加n,n為整數(shù)。調(diào)用該方法之后,若Value屬性大于Maximum屬性的值,則 Value屬性值就是Maximum值,若Value屬性小于Minimum屬性值,則 Value屬性值就是Minimum值。
(2)PerformStep方法:用來按step屬性值來增加進(jìn)度條的Value屬性值,調(diào)用的一般格式如下:
progressBar對象.PerformStep();
該方法無參數(shù)。例如,下列程序段是一個(gè)顯示復(fù)制多個(gè)文件的進(jìn)度的進(jìn)度條使用方法。
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控件能響應(yīng)很多事件,但一般很少使用。
2.TrackBar控件
TrackBar 控件又稱滑塊控件、跟蹤條控件。該控件主要用于在大量信息中進(jìn)行瀏覽,或用于以可視形式調(diào)整數(shù)字設(shè)置。TrackBar控件有兩部分:縮略圖(也稱為滑塊)和刻度線??s略圖是可以調(diào)整的部分,其位置與 Value 屬性相對應(yīng)??潭染€是按規(guī)則間隔分隔的可視化指示符。跟蹤條控件可以按指定的增量移動(dòng),并且可以水平或者垂直排列。
TrackBar控件的常用屬性如下。
(1)Maximum屬性:用來獲取或設(shè)置TrackBar控件可表示的范圍上限,即最大值。
(2)Minimum屬性:用來獲取或設(shè)置TrackBar控件可表示的范圍下限,即最小值。
(3)Orientation屬性:用來獲取或設(shè)置一個(gè)值,該值指示跟蹤條是在水平方向還是在垂直方向。
(4)LargeChange屬性:用來獲取或設(shè)置一個(gè)值,該值指示當(dāng)滑塊長距離移動(dòng)時(shí)應(yīng)為Value屬性中加上或減去的值。
(5)SmallChange屬性:用來獲取或設(shè)置當(dāng)滑塊短距離移動(dòng)時(shí)對Value屬性進(jìn)行增減的值。
(6)Value屬性:用來獲取或設(shè)置滑塊在跟蹤條控件上的當(dāng)前位置的值。
(7)TickFrequency屬性:用來獲取或設(shè)置一個(gè)值,該值指定控件上繪制的刻度之間的增量。
(8)TickStyle 屬性:用來獲取或設(shè)置一個(gè)值,該值指示如何顯示跟蹤條上的刻度線。
TrackBar控件的常用事件是ValueChanged,該事件在TrackBar控件的Value屬性值改變時(shí)發(fā)生。
16、HScrollBar 控件和 VScrollBar控件的使用
滾動(dòng)條(ScrollBar)是大部分Windows應(yīng)用程序中都具有的控件,是 Windows界面的一種常見元素,通常分為水平滾動(dòng)條(HscrollBar)和垂直滾動(dòng)條(VscrollBar)。HScrollBar在工具箱中的圖標(biāo)是,VScrollBar控件在工具箱中的圖標(biāo)是。這兩個(gè)控件主要用于在應(yīng)用程序或控件中水平或垂直滾動(dòng),以方便在較長的列表中或大量信息中轉(zhuǎn)移。
1、常用屬性:
(1)Minimum和 Maximum屬性:與TrackBar控件的同名屬性基本相同。
(2)Value屬性:用于設(shè)置或返回滑塊在滾動(dòng)條中所處的位置,其默認(rèn)值為0。當(dāng)滑塊的位置值為最小值時(shí),滑塊移到水平滾動(dòng)條的最左端位置,或移到垂直滾動(dòng)條的頂端位置。
當(dāng)滑塊的位置值為最大值時(shí),滑塊移到水平滾動(dòng)條的最右端位置或垂直滾動(dòng)條的底端位置。
(3)SmallChange和LargeChange屬性:這兩個(gè)屬性主要用于調(diào)整滑塊移動(dòng)的距離。其中 SmallChange屬性用于控制當(dāng)鼠標(biāo)單擊滾動(dòng)條兩邊的箭頭時(shí),滑塊滾動(dòng)的值,即 Value屬性增加或減小的值。而LargeChange屬性則控制當(dāng)用鼠標(biāo)直接單擊滾動(dòng)條時(shí)滑塊滾動(dòng)的值。當(dāng)
用戶按下PageUp鍵或PageDown鍵或者在滑塊的任何一邊單擊滾動(dòng)條軌跡時(shí),Value屬性將按照 LargeChange屬性中設(shè)置的值進(jìn)行增加或減小。
2、常用事件:
(1)Scroll事件:該事件在用戶通過鼠標(biāo)或鍵盤移動(dòng)滑塊后發(fā)生。
(2)ValueChanged事件:該事件在滾動(dòng)條控件的Value屬性值改變時(shí)發(fā)生。
滾動(dòng)條的使用方法與TrackBar控件基本一致,此處不再贅述。
17、OpenFileDialog 控件
OpenFileDialog控件又稱打開文件對話框,主要用來彈出Windows中標(biāo)準(zhǔn)的【打開文件】對話框。
OpenFileDialog控件的常用屬性如下。
(1)Title屬性:用來獲取或設(shè)置對話框標(biāo)題,默認(rèn)值為空字符串(“”)。如果標(biāo)題為空字符串,則系統(tǒng)將使用默認(rèn)標(biāo)題: “打開” 。
(2)Filter屬性:用來獲取或設(shè)置當(dāng)前文件名篩選器字符串,該字符串決定對話框的【另存為文件類型】或【文件類型】框中出現(xiàn)的選擇內(nèi)容。對于每個(gè)篩選選項(xiàng),篩選器字符串都包含篩選器說明、垂直線條(|)和篩選器模式。不同篩選選項(xiàng)的字符串由垂直線條隔開,例如: “文本文件(.txt)|.txt|所有文件(.)|.” 。
還可以通過用分號(hào)來分隔各種文件類型,可以將多個(gè)篩選器模式添加到篩選器中,例如: “圖像文件(.BMP;.JPG;.GIF)|.BMP;.JPG; .GIF|所有文件(.)|.” 。
(3)FilterIndex屬性:用來獲取或設(shè)置文件對話框中當(dāng)前選定篩選器的索引。第一個(gè)篩選器的索引為1,默認(rèn)值為1。
(4)FileName 屬性:用來獲取在打開文件對話框中選定的文件名的字符串。文件名既包含文件路徑也包含擴(kuò)展名。如果未選定文件,該屬性將返回空字符串(“”)。
(5)InitialDirectory屬性:用來獲取或設(shè)置文件對話框顯示的初始目錄,默認(rèn)值為空字符串(“”)。
(6)ShowReadOnly屬性:用來獲取或設(shè)置一個(gè)值,該值指示對話框是否包含只讀復(fù)選框。如果對話框包含只讀復(fù)選框,則屬性值為true,否則屬性值為false。默認(rèn)值為false。
(7)ReadOnlyChecked屬性:用來獲取或設(shè)置一個(gè)值,該值指示是否選定只讀復(fù)選框。如果選中了只讀復(fù)選框,則屬性值為true,反之,屬性值為false。默認(rèn)值為false。
(8)Multiselect屬性:用來獲取或設(shè)置一個(gè)值,該值指示對話框是否允許選擇多個(gè)文件。如果對話框允許同時(shí)選定多個(gè)文件,則該屬性值為true,反之,屬性值為false。默認(rèn)值為false。
(9)FileNames屬性:用來獲取對話框中所有選定文件的文件名。每個(gè)文件名都既包含文件路徑又包含文件擴(kuò)展名。如果未選定文件,該方法將返回空數(shù)組。
(10)RestoreDirectory屬性:用來獲取或設(shè)置一個(gè)值,該值指示對話框在關(guān)閉前是否還原當(dāng)前目錄。假設(shè)用戶在搜索文件的過程中更改了目錄,且該屬性值為 true,那么,對話框會(huì)將當(dāng)前目錄還原為初始值,若該屬性值為 false,則不還原成初始值。默認(rèn)值為 false。OpenFileDialog 控件的常用方法有兩個(gè):OpenFile 和 ShowDialog方法,本節(jié)只介紹ShowDialog方法,該方法的作用是顯示通用對話框,其一般調(diào)用形式如下:
通用對話框?qū)ο竺?ShowDialog();
通用對話框運(yùn)行時(shí),如果單擊對話框中的【確定】按鈕,則返回值為 DialogResult.OK;否則返回值為DialogResult.Cancel。其他對話框控件均具有ShowDialog方法,以后不再重復(fù)介紹。
18、SaveFileDialog 控件
SaveFileDialog 控件又稱保存文件對話框,主要用來彈出 Windows 中標(biāo)準(zhǔn)的【保存文件】對話框。
SaveFileDialog 控件也具有 FileName、Filter、FilterIndex、InitialDirectory、Title 等屬性,這些屬性的作用與 OpenFileDialog對話框控件基本一致,此處不再贅述。
需注意的是:上述兩個(gè)對話框只返回要打開或保存的文件名,并沒有真正提供打開或保存文件的功能,程序員必須自己編寫文件打開或保存程序,才能真正實(shí)現(xiàn)文件的打開和保存功能。
19、FontDialog 控件
FontDialog控件又稱字體對話框,主要用來彈出Windows中標(biāo)準(zhǔn)的【字體】對話框。該控件在工具箱中的圖標(biāo)為 。字體對話框的作用是顯示當(dāng)前安裝在系統(tǒng)中的字體列表,供用戶進(jìn)行選擇。下面介紹字體對話框的主要屬性。
(1)Font屬性:該屬性是字體對話框的最重要屬性,通過它可以設(shè)定或獲取字體信息。
(2)Color屬性:用來設(shè)定或獲取字符的顏色。
(3)MaxSize屬性:用來獲取或設(shè)置用戶可選擇的最大磅值。
(4)MinSize屬性:用來獲取或設(shè)置用戶可選擇的最小磅值。192VisualC#.NET應(yīng)用教程
(5)ShowColor屬性:用來獲取或設(shè)置一個(gè)值,該值指示對話框是否顯示顏色選擇框。如果對話框顯示顏色選擇框,屬性值為true,反之,屬性值為false。默認(rèn)值為false。
(6)ShowEffects 屬性:用來獲取或設(shè)置一個(gè)值,該值指示對話框是否包含允許用戶指定刪除線、下劃線和文本顏色選項(xiàng)的控件。如果對話框包含設(shè)置刪除線、下劃線和文本顏色選項(xiàng)的控件,屬性值為 true,反之,屬性值為false。默認(rèn)值為true。
20、ColorDialog控件
ColorDialog 控件又稱顏色對話框,主要用來彈出 Windows 中標(biāo)準(zhǔn)的【顏色】對話框。該控件在工具箱中的圖標(biāo)為 。顏色對話框的作用是供用戶選擇一種顏色,并用 Color 屬性記錄用戶選擇的顏色值。下面介紹顏色對話框的主要屬性。
(1)AllowFullOpen屬性:用來獲取或設(shè)置一個(gè)值,該值指示用戶是否可以使用該對話框定義自定義顏色。如果允許用戶自定義顏色,屬性值為true,否則屬性值為false。默認(rèn)值為true。
(2)FullOpen 屬性:用來獲取或設(shè)置一個(gè)值,該值指示用于創(chuàng)建自定義顏色的控件在對話框打開時(shí)是否可見。值為true時(shí)可見,值為 false時(shí)不可見。
(3)AnyColor 屬性:用來獲取或設(shè)置一個(gè)值,該值指示對話框是否顯示基本顏色集中可用的所有顏色。值為 true時(shí),顯示所有顏色,否則不顯示所有顏色。
(4)Color屬性:用來獲取或設(shè)置用戶選定的顏色。
21、PrintDialog控件和 PrintDocument 控件
使用PrintDialog控件可以顯示W(wǎng)indows標(biāo)準(zhǔn)的【打印】對話框,在該對話框中用戶可以選擇打印機(jī)、選擇要打印的頁及頁碼范圍等。需要注意的是:該對話框并不負(fù)責(zé)具體的打印任務(wù),要想在應(yīng)用程序中控制打印內(nèi)容必須使用 PrintDocument 控件。關(guān)于這兩個(gè)控件的詳細(xì)使用方法讀者可參閱相關(guān)資料或VisualC#的幫助文件。
22、用戶自定義對話框
除了可以使用Windows自帶的標(biāo)準(zhǔn)對話框外,用戶還可以把自己設(shè)計(jì)的窗體定義成對話框。使用自定義對
話框有以下幾個(gè)要點(diǎn)。
(1)將窗體的FormBorderStyle屬性值設(shè)置為FixedDialog。
(2)根據(jù)需要向窗體上添加控件。
(3)使用窗體的ShowDialog方法顯示窗體,即顯示出對話框。
23、MainMenu菜單控件
Windows 的菜單系統(tǒng)是圖形用戶界面(GUI)的重要組成之一,在 VisualC#中使用 MainMenu 控件可以很方便地實(shí)現(xiàn)Windows的菜單,MainMenu控件在工具箱中的圖標(biāo)為 。
1.菜單的結(jié)構(gòu)
圖 10-9和圖10-10 是典型的菜單結(jié)構(gòu)。其中有文字的單個(gè)命令稱菜單項(xiàng),頂層菜單項(xiàng)是橫著排列的,單擊某個(gè)菜單項(xiàng)后彈出的稱為菜單或子菜單,它們均包含若干個(gè)菜單項(xiàng),菜單項(xiàng)其實(shí)是 MenuItem 類的一個(gè)對象。菜單項(xiàng)有的是變灰顯示的,表示該菜單項(xiàng)當(dāng)前是被禁止使用的。有的菜單項(xiàng)的提示文字中有帶下劃線的字母,該字母稱為熱鍵(或訪問鍵),若是頂層菜單,可通過按“ALT+熱鍵”打開該菜單,若是某個(gè)子菜單中的一個(gè)選項(xiàng),則在打開子菜單后直接按熱鍵就會(huì)執(zhí)行相應(yīng)的菜單命令。有的菜單項(xiàng)后面有一個(gè)按鍵或組合鍵,稱快捷鍵,在不打開菜單的情況下按快捷鍵,將執(zhí)行相應(yīng)的命令。在圖 10-9 中,【保存文件】菜單項(xiàng)是加粗顯示的,該菜單項(xiàng)稱為默認(rèn)項(xiàng)。圖10-9的【另存為】和【退出】之間有一個(gè)灰色的線條,該線條稱為分隔線或分隔符。在圖 10-10 中菜單項(xiàng)【白色背景】前面有一個(gè)“√”號(hào),稱為選中標(biāo)記,菜單項(xiàng)加上選中標(biāo)記表示該菜單項(xiàng)代表的功能當(dāng)前正在起作用。
2.菜單項(xiàng)的常用屬性
(1)Text 屬性:用來獲取或設(shè)置一個(gè)值,通過該值指示菜單項(xiàng)標(biāo)題。當(dāng)使用 Text 屬性為菜單項(xiàng)指定標(biāo)題時(shí),還可以在字符前加一個(gè)“&”號(hào)來指定熱鍵(訪問鍵,即加下劃線的字母)。例如,若要將“File”中的“F”指定為訪問鍵,應(yīng)將菜單項(xiàng)的標(biāo)題指定為“&File” 。
(2)Checked屬性:用來獲取或設(shè)置一個(gè)值,通過該值指示選中標(biāo)記是否出現(xiàn)在菜單項(xiàng)文本的旁邊。如果要放置選中標(biāo)記在菜單項(xiàng)文本的旁邊,屬性值為true,否則屬性值為false。默認(rèn)值為false。
(3)DefaultItem 屬性:用來獲取或設(shè)置一個(gè)值,通過該值指示菜單項(xiàng)是否為默認(rèn)菜單項(xiàng)。值為 true 時(shí),是默認(rèn)菜單項(xiàng),值為 false時(shí),不是默認(rèn)菜單項(xiàng)。菜單的默認(rèn)菜單項(xiàng)以粗體的形式顯示。當(dāng)用戶雙擊包含默認(rèn)項(xiàng)的子菜單后,默認(rèn)項(xiàng)被選定,然后子菜單關(guān)閉。
(4)Enabled屬性:用來獲取或設(shè)置一個(gè)值,通過該值指示菜單項(xiàng)是否可用。值為true時(shí)表示可用,值為false表示當(dāng)前禁止使用。
(5)RadioCheck 屬性:用來獲取或設(shè)置一個(gè)值,通過該值指示選中的菜單項(xiàng)的左邊是顯示單選按鈕還是選中標(biāo)記。值為true時(shí)將顯示單選按鈕標(biāo)記,值為false時(shí)顯示選中標(biāo)記。
(6)Shortcut屬性:用來獲取或設(shè)置一個(gè)值,該值指示與菜單項(xiàng)相關(guān)聯(lián)的快捷鍵。
(7)ShowShortcut 屬性:用來獲取或設(shè)置一個(gè)值,該值指示與菜單項(xiàng)關(guān)聯(lián)的快捷鍵是否在菜單項(xiàng)標(biāo)題的旁邊顯示。如果快捷組合鍵在菜單項(xiàng)標(biāo)題的旁邊顯示,該屬性值為 true,如果不顯示快捷鍵,該屬性值為false。默認(rèn)值為true。
(8)MdiList屬性:用來獲取或設(shè)置一個(gè)值,通過該值指示是否用在關(guān)聯(lián)窗體內(nèi)顯示的多文檔界面(MDI)子窗口列表來填充菜單項(xiàng)。若要在該菜單項(xiàng)中顯示MDI子窗口列表,則設(shè)置該屬性值為true,否則設(shè)置該屬性的值為false。默認(rèn)值為false。
3.菜單項(xiàng)的常用事件
菜單項(xiàng)的常用事件主要有Click事件,該事件在用戶單擊菜單項(xiàng)時(shí)發(fā)生。
24、多窗體程序設(shè)計(jì)
Windows應(yīng)用程序很少只由一個(gè)窗體組成, 一般情況下一個(gè)應(yīng)用程序均擁有很多個(gè)窗體。
C#項(xiàng)目剛建立時(shí)只有一個(gè)名為Form1的窗體,要建立多窗體應(yīng)用程序應(yīng)首先為項(xiàng)目添加窗體,添加窗體的方法如下。
(1) 單擊工具欄上的按鈕 或執(zhí)行【項(xiàng)目】→【添加Windows窗體】命令,將會(huì)出現(xiàn)如圖 10-17 所示的【添加新項(xiàng)】對話框。
(2) 在該對話框的【模板】下面的列表框中 選中【W(wǎng)indows 窗體】圖標(biāo),在【名稱】文本框中輸入窗體名,然后單擊【打開】按鈕,即為應(yīng)用程序添加了一個(gè)窗體。
25、MDI 應(yīng)用程序設(shè)計(jì)
1.MDI應(yīng)用程序的概念
在前面的章節(jié)中,所創(chuàng)建的都是單文檔界面(SDI)應(yīng)用程序。這樣的程序(如記事本和畫圖程序)僅支持一次打開一個(gè)窗口或文檔。如果需要編輯多個(gè)文檔,必須創(chuàng)建SDI應(yīng)用程序的多個(gè)實(shí)例。而使用多文檔界面(MDI)程序(如Word和AdobePhotoshop)時(shí),用戶可以同時(shí)編輯多個(gè)文檔。MDI程序中的應(yīng)用程序窗口稱為父窗口,應(yīng)用程序內(nèi)部的窗口稱為子窗口。雖然 MDI應(yīng)用程序可以具有多個(gè)子窗口, 但是每個(gè)子窗口卻只能有一個(gè)父窗口。此外,處于活動(dòng)狀態(tài)的子窗口最大數(shù)目是 1。子窗口本身不能再成為父窗口,而且不能移動(dòng)到它們的父窗口區(qū)域之外。除此以外,子窗口的行為與任何其他窗口一樣(如可以關(guān)閉、最小化和調(diào)整大小等)。一個(gè)子窗口在功能上可能與父窗口的其他子窗口不同,例如,一個(gè)子窗口可能用于編輯圖像,另一個(gè)子窗口可能用于編輯文本,第 3 個(gè)子窗口可以使用圖形來顯示數(shù)據(jù),但是所有的窗口都屬于相同的MDI父窗口。圖 10-19 是一個(gè)典型的 MDI應(yīng)用程序。外面的窗口是應(yīng)用程序窗口,里面的兩個(gè)小窗口是 MDI子窗口。
2.與 MDI應(yīng)用程序設(shè)計(jì)有關(guān)的屬性、方法和事件
常用的MDI父窗體屬性如下。
(1)ActiveMdiChild屬性:該屬性用來表示當(dāng)前活動(dòng)的MDI子窗口,如果當(dāng)前沒有子窗口,則返回null。
(2)IsMdiContainer屬性:該屬性用來獲取或設(shè)置一個(gè)值,該值指示窗體是否為多文檔界面(MDI)子窗體的容器,即MDI父窗體。值為true時(shí),表示是父窗體,值為false時(shí),表示不是父窗體。
(3)MdiChildren屬性:該屬性以窗體數(shù)組形式返回MDI子窗體,每個(gè)數(shù)組元素對應(yīng)一個(gè) MDI子窗體。
常用的MDI子窗體的屬性有:
(1)IsMdiChild屬性:該屬性用來獲取一個(gè)值,該值指示該窗體是否為多文檔界面(MDI)的子窗體。值為 true時(shí),表示是子窗體,值為false時(shí),表示不是子窗體。
(2)MdiParent屬性:該屬性用來指定該子窗體的MDI父窗體。與MDI應(yīng)用程序設(shè)計(jì)有關(guān)的方法中,一般只使用父窗體的LayoutMdi方法,該方法的調(diào)用格式如下:
MDI父窗體名.LayoutMdi(Value);
該方法用來在MDI父窗體中排列MDI子窗體,以便導(dǎo)航和操作MDI子窗體。參數(shù)Value決定排列方式,取值有:MdiLayout.ArrangeIcons(所有 MDI 子窗體以圖標(biāo)的形式排列在 MDI 父窗體的工作區(qū)內(nèi))、MdiLayout.TileHorizontal (所有MDI子窗口均水平平鋪在MDI父窗體的工作區(qū)內(nèi))、 MdiLayout.TileVertical(所有 MDI 子窗口均垂直平鋪在 MDI 父窗體的工作區(qū)內(nèi))和 MdiLayout.Cascade(所有 MDI 子窗口均層疊在 MDI 父窗體的工作區(qū)內(nèi))。常用的 MDI 父窗體的事件是 MdiChildActivate,當(dāng)激活或關(guān)閉一個(gè) MDI子窗體時(shí)將發(fā)生該事件。
3.菜單合并
父窗體和子窗體可以使用不同的菜單,這些菜單會(huì)在選擇子窗體的時(shí)候合并。如果需要指定菜單的合并方式,程序員可以設(shè)置每個(gè)菜單項(xiàng)的MergeOrder屬性和MergeType屬性。
(1)MergeOrder屬性:用來確定當(dāng)兩個(gè)菜單合并時(shí)菜單項(xiàng)出現(xiàn)的順序,具有較低MergeOrder的菜單項(xiàng)會(huì)首先出現(xiàn)。
(2)MergeType屬性:當(dāng)合并的兩個(gè)菜單的某些菜單項(xiàng)的MergeOrder屬性值相等時(shí),使用該屬性可以控制這些菜單項(xiàng)的顯示方式。其取值及含義如表10-4所示。
26、鍵盤事件處理
鍵盤事件在用戶按下鍵盤上的鍵時(shí)發(fā)生,可分為兩類。第一類是KeyPress事件,當(dāng)按下的鍵表示的是一個(gè)ASCII 字符時(shí)就會(huì)觸發(fā)這類事件,可通過它的 KeyPressEventArgs 類型參數(shù)的屬性 KeyChar 來確定按下鍵的 ASCII 碼。使用 KeyPress 事件無法判斷是否按下了修改鍵(例如 Shift,Alt 和 Ctrl 鍵),為了判斷這些動(dòng)作, 就要處理KeyUp 或KeyDown事件, 這些事件組成了第二類鍵盤事件。 該類事件有一個(gè)KeyEventArgs類型的參數(shù),通過該參數(shù)可以測試是否按下了一些修改鍵、功能鍵等特殊按鍵信息。
1.KeyPressEventArgs類的主要屬性(KeyPress事件的一個(gè)參數(shù)類型)
(1)Handled屬性:用來獲取或設(shè)置一個(gè)值,該值指示是否處理過KeyPress事件。
(2)KeyChar屬性:用來獲取按下的鍵對應(yīng)的字符,通常是該鍵的ASCII碼。
2.KeyEventArgs類的主要屬性(KeyUp和 KeyDown事件的一個(gè)參數(shù))
(1)Alt屬性:用來獲取一個(gè)值,該值指示是否曾按下Alt鍵。
(2)Control屬性:用來獲取一個(gè)值,該值指示是否曾按下Ctrl鍵。
(3)Shift屬性:用來獲取一個(gè)值,該值指示是否曾按下Shift鍵。
(4)Handled屬性:用來獲取或設(shè)置一個(gè)值,該值指示是否處理過此事件。
(5)KeyCode屬性:以 Keys枚舉型值返回鍵盤鍵的鍵碼,該屬性不包含修改鍵(Alt、Control和 Shift鍵)信息,用于測試指定的鍵盤鍵。
(6)KeyData 屬性:以 Keys 枚舉類型值返回鍵盤鍵的鍵碼,并包含修改鍵信息,用于判斷關(guān)于按下鍵盤鍵的所有信息。
(7)KeyValue屬性:以整數(shù)形式返回鍵碼,而不是Keys枚舉類型值。用于獲得所按下鍵盤鍵的數(shù)字表示。
(8)Modifiers 屬性:以 Keys 枚舉類型值返回所有按下的修改鍵(Alt、Control 和 Shift 鍵),僅用于判斷修改鍵信息。
27、鼠標(biāo)事件處理
對鼠標(biāo)操作的處理是應(yīng)用程序的重要功能之一,在VisualC#中有一些與鼠標(biāo)操作相關(guān)的事件,利用它們可以方便地進(jìn)行與鼠標(biāo)有關(guān)的編程。
(1)MouseEnter事件:在鼠標(biāo)指針進(jìn)入控件時(shí)發(fā)生。
(2)MouseMove事件:在鼠標(biāo)指針移到控件上時(shí)發(fā)生。事件處理程序接收一個(gè)MouseEventArgs類型的參數(shù),該參數(shù)包含與此事件相關(guān)的數(shù)據(jù)。該參數(shù)的主要屬性及其含義如下。
Button屬性:用來獲取曾按下的是哪個(gè)鼠標(biāo)按鈕。該屬性是MouseButtons枚舉型的值,
取值及含義如下:Left(按下鼠標(biāo)左按鈕)、Middle(按下鼠標(biāo)中按鈕)、Right(鼠標(biāo)右按鈕)、None(沒
有按下鼠標(biāo)按鈕)、 XButton1 (按下了第一個(gè)XButton按鈕, 僅用于Microsoft智能鼠標(biāo)瀏覽器) 和XButton2(按下了第二個(gè)XButton按鈕,僅用于 Microsoft智能鼠標(biāo)瀏覽器)
Clicks屬性:用來獲取按下并釋放鼠標(biāo)按鈕的次數(shù)。
Delta屬性:用來獲取鼠標(biāo)輪已轉(zhuǎn)動(dòng)的制動(dòng)器數(shù)的有符號(hào)計(jì)數(shù)。制動(dòng)器是鼠標(biāo)輪的一個(gè)凹口。
X 屬性:用來獲取鼠標(biāo)所在位置的x坐標(biāo)。
Y 屬性:用來獲取鼠標(biāo)所在位置的y坐標(biāo)。
(3)MouseHover事件:當(dāng)鼠標(biāo)指針懸停在控件上時(shí)將發(fā)生該事件。
(4)MouseDown事件:當(dāng)鼠標(biāo)指針位于控件上并按下鼠標(biāo)鍵時(shí)將發(fā)生該事件。事件處理程序也接收一個(gè)MouseEventArgs類型的參數(shù)。
(5)MouseWheel事件:在移動(dòng)鼠標(biāo)輪并且控件有焦點(diǎn)時(shí)將發(fā)生該事件。該事件的事件處理程序接收一個(gè)MouseEventArgs類型的參數(shù)
(6)MouseUp 事件:當(dāng)鼠標(biāo)指針在控件上并釋放鼠標(biāo)鍵時(shí)將發(fā)生該事件。事件處理程序也接收一個(gè)MouseEventArgs類型的參數(shù)。
(7)MouseLeave事件:在鼠標(biāo)指針離開控件時(shí)將發(fā)生該事件。
28、月歷 MonthCalendar
常用屬性:
屬性 | 說明 |
---|---|
FirstDayOfWeek | 設(shè)置日歷中每一周第一個(gè)顯示的日期 |
MaxDate | 可以選擇的最后一個(gè)日期 |
MaxSelectionCount | 可以一次選擇的最多天數(shù) |
MinDate | 可以選擇的第一個(gè)日期 |
MonthlyBoldedDates | 日歷中以粗體顯示的一個(gè)日期數(shù)組 |
SelectionEnd | 用戶選擇的最后一個(gè)日期 |
SelectionRange | 用戶選擇的日期 |
SelectionStart | 用戶選擇的第一個(gè)日期 |
常用事件:
DateChanged:當(dāng)選中了日歷中的某個(gè)日期時(shí),會(huì)產(chǎn)生這個(gè)事件
29、日歷 DateTimePicker
常用屬性:
屬性 | 說明 |
---|---|
CalendarForeColor | 設(shè)置日歷文本顏色 |
CalendarMonthBackground | 設(shè)置日歷的背景色 |
CustomFormat | 設(shè)置用戶選項(xiàng)的定制格式字符串 |
Format | 設(shè)置用戶選項(xiàng)的日期或時(shí)間格式 |
MaxDate | 可以選擇的最大日期和時(shí)間 |
MinDate | 可以選擇的最小日期和時(shí)間 |
ShowCheckBox | 表明是否應(yīng)在所選日期和時(shí)間的左邊顯示復(fù)選框 |
ShowUpDown | 表示控件是否應(yīng)顯示向上和向下的按鈕 |
Value | 用戶選擇的數(shù)據(jù) |
常用事件:
ValueChanged:Value屬性發(fā)生變化時(shí)產(chǎn)生這個(gè)事件
30、超鏈接 LinkLabel
常用屬性:
屬性 | 說明 |
---|---|
ActiveLinkColor | 指定用戶單擊鏈接時(shí)的顏色 |
LinkArea | 指定LinkLabel中哪一部分的文本為鏈接 |
LinkBehavior | 指定鏈接的行為,比如當(dāng)鼠標(biāo)放置其上時(shí)鏈接如何出現(xiàn) |
LinkColor | 指定單擊前鏈接的顏色 |
LinkVisited | 如果為true,則鏈接表現(xiàn)為已被訪問過 |
Text | 指定這個(gè)控件的文本 |
UseMnemonic | 如果為true,則在Text屬性中的&字符充當(dāng)快捷鍵 |
VisitedLinkColor | 指定訪問過的鏈接的顏色 |
常用事件:
LinkClicked:單擊鏈接時(shí)產(chǎn)生,配合Process類的Start方法
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
linkLabel1.LinkVisited = true;
//可以執(zhí)行本機(jī)文件
//System.Diagnostics.Process.Start(@"D:\Program Files\test.exe");
System.Diagnostics.Process.Start(@"http://www.baidu.com");
}
31、TabControl 控件
TabContrl控件可創(chuàng)建標(biāo)簽化窗口
常用屬性:
屬性 | 說明 |
---|---|
ImageList | 指定在標(biāo)簽上顯示的圖像 |
ItemSize | 指定標(biāo)簽的大小 |
Multiline | 表明是否能將標(biāo)簽顯示成多行 |
SelectedIndex | 所選TabPage的索引 |
SelectedTab | 被選中的TabPage |
TabCount | 返回標(biāo)簽頁面的數(shù)量 |
TabPages | 返回TabControl內(nèi)的TabPages集合 |
常用事件:
SelectedIndexChanged:當(dāng)SelectedIndex變化時(shí)產(chǎn)生
32、TreeView 控件和TreeNode 控件
TreeView控件用樹顯示節(jié)點(diǎn)層次。
例如:頂級(jí)目錄是根(C:),C盤下的每個(gè)子目錄都是子節(jié)點(diǎn),而每個(gè)子目錄又都有自己的子節(jié)點(diǎn)
TreeView屬性和方法:
屬性 | 說明 |
---|---|
CheckBoxes | 表示節(jié)點(diǎn)旁邊是否出現(xiàn)復(fù)選框 |
ImageList | 指定一個(gè)包含節(jié)點(diǎn)圖標(biāo)的ImageList對象。ImageList對象是一個(gè)包含Image對象的集合 |
Nodes | 將控件中的TreeNode集合作為TreeNodeCollection返回 |
SelectedNode | 被選中的節(jié)點(diǎn) |
常用事件:
AfterSelect:當(dāng)所選節(jié)點(diǎn)發(fā)生變化時(shí)產(chǎn)生文章來源:http://www.zghlxwxcb.cn/news/detail-489823.html
TreeNode屬性和方法:文章來源地址http://www.zghlxwxcb.cn/news/detail-489823.html
TreeNode屬性 | 說明 |
---|---|
Checked | 表示是否選中了TreeNode |
FirstNode | 指定Nodes集合眾的第一個(gè)節(jié)點(diǎn) |
FullPath | 節(jié)點(diǎn)從數(shù)根開始的路徑 |
ImageIndex | 當(dāng)去選一個(gè)節(jié)點(diǎn)時(shí),指定TreeView的ImageList中要顯示的圖像的索引 |
LastNode | 指定Nodes集合中的最后一個(gè)節(jié)點(diǎn) |
NextNode | 下一個(gè)同胞節(jié)點(diǎn) |
Nodes | 包含在當(dāng)前節(jié)點(diǎn)中的TreeNode集合 |
PrevNode | 前一個(gè)同胞節(jié)點(diǎn) |
SelectedImageIndex | 當(dāng)選擇一個(gè)節(jié)點(diǎn)時(shí),指定TreeView的ImageList中要顯示的圖像的索引 |
Text | 指定TreeNode的文本 |
TreeNode方法 | 說明 |
---|---|
Collapse | 加載時(shí)縮合節(jié)點(diǎn) |
Expand | 展開節(jié)點(diǎn) |
ExpandAll | 展開節(jié)點(diǎn)的所有子節(jié)點(diǎn) |
GetNodeCount | 返回子節(jié)點(diǎn)個(gè)數(shù) |
到了這里,關(guān)于Visual Studio C# WinForm開發(fā)入門(3):各種控件介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!