第三章 GUI程序設(shè)計(jì)_第1頁(yè)
第三章 GUI程序設(shè)計(jì)_第2頁(yè)
第三章 GUI程序設(shè)計(jì)_第3頁(yè)
第三章 GUI程序設(shè)計(jì)_第4頁(yè)
第三章 GUI程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章GUI程序設(shè)計(jì)GUI(GraphicsUserInterface),即圖形用戶界面,是指用圖形的方式實(shí)現(xiàn)人與計(jì)算機(jī)之間的交互。1版權(quán)所有目錄GUI程序設(shè)計(jì)方法窗體對(duì)話框標(biāo)簽、文本框和按鈕菜單和多文檔界面工具欄和狀態(tài)欄單選鈕、復(fù)選鈕、組和面板列表框、組合框和復(fù)選列表框2版權(quán)所有3.1GUI程序設(shè)計(jì)方法3.1.1GUI程序模型3版權(quán)所有3.1.2建立GUI應(yīng)用程序的一般步驟利用C#編寫(xiě)GUI應(yīng)用程序的一般步驟:(1)建立“Windows應(yīng)用程序”項(xiàng)目(2)設(shè)計(jì)應(yīng)用程序界面(3)設(shè)置窗口和控件的屬性(4)編寫(xiě)事件方法代碼4版權(quán)所有3.1.3控件的基本屬性下面介紹的一些屬性是多數(shù)控件都具有的屬性:(1)Name:用來(lái)獲取或設(shè)置控件的名稱。名稱是控件的標(biāo)識(shí)。(2)Text:用來(lái)獲取或設(shè)置控件的標(biāo)題文字。(3)Width和Height:用來(lái)獲取或設(shè)置控件的大小。(4)Left和Top:用來(lái)獲取或設(shè)置控件的位置。(5)Visible:用來(lái)獲取或設(shè)置控件是否可見(jiàn)。取值為true或false。(6)Enabled:用來(lái)獲取或設(shè)置控件是否對(duì)響應(yīng)交互。取值為true或false。(7)ForeColor:用來(lái)獲取或設(shè)置控件的前景色。(8)BackColor:用來(lái)獲取或設(shè)置控件的背景色。5版權(quán)所有(9)Font:用來(lái)獲取或設(shè)置控件的字體。(10)BorderStyle:用來(lái)獲取或設(shè)置控件的邊框。(11)AutoSize:用來(lái)獲取或設(shè)置控件是否自動(dòng)調(diào)整大小。取值為true或false。(12)Anchor:獲取或設(shè)置控件的哪些邊緣錨定到其容器邊緣。(13)Dock:獲取或設(shè)置控件停靠到父容器的哪一個(gè)邊緣。(14)TabIndex:用來(lái)獲取或設(shè)置控件的Tab鍵順序。(15)TextAlign:用來(lái)確定文本對(duì)齊方式。(16)Cursor:用來(lái)獲取或設(shè)置鼠標(biāo)移到控件上時(shí),被顯示的鼠標(biāo)指針的類型。6版權(quán)所有【案例3-1】圖片的顯示和隱藏。在窗體上放置一個(gè)圖片框、一個(gè)“顯示”按鈕和一個(gè)“隱藏”按鈕。開(kāi)始運(yùn)行時(shí),圖片不可見(jiàn),“顯示“按鈕可用,“隱藏”按鈕不可用。單擊“顯示”按鈕后,圖片顯示出來(lái),“顯示”按鈕變成不可用,而“隱藏”按鈕變成可用。7版權(quán)所有3.1.4事件和事件處理1.事件處理模型在C#中,Windows窗體應(yīng)用程序中的事件處理是通過(guò)委托來(lái)實(shí)現(xiàn)的。在.NET框架中,Delegate類用于生成事件處理機(jī)制。一個(gè)委托由對(duì)對(duì)象的引用以及對(duì)該對(duì)象內(nèi)部一個(gè)或多個(gè)方法的引用組成的。在委托事件模型中,“委托”實(shí)際上是將事件和處理事件的方法綁定到一起。委托可以將一個(gè)事件綁定到單個(gè)方法或多個(gè)方法;也允許將多個(gè)事件綁定到一個(gè)方法。8版權(quán)所有事件處理程序是綁定到事件的方法。當(dāng)引發(fā)事件時(shí),執(zhí)行事件處理程序內(nèi)的代碼。每個(gè)事件處理程序提供兩個(gè)使您得以正確處理事件的參數(shù)。如下為Button控件的Click事件的事件處理程序:privatevoidbutton1_Clicked(objectsender,System.EventArgse){}

第一個(gè)參數(shù)sender提供對(duì)引發(fā)事件的對(duì)象的引用。第二個(gè)參數(shù)e傳遞針對(duì)要處理的事件的對(duì)象。通過(guò)引用對(duì)象的屬性(有時(shí)引用其方法)可獲得一些信息,如鼠標(biāo)事件中鼠標(biāo)的位置或拖放事件中傳輸?shù)臄?shù)據(jù)。9版權(quán)所有2.鍵盤事件當(dāng)用戶對(duì)鍵盤進(jìn)行操作時(shí),系統(tǒng)會(huì)產(chǎn)生相應(yīng)的鍵盤事件。當(dāng)用戶按下某個(gè)鍵時(shí),就會(huì)發(fā)生KeyDown事件,隨后便發(fā)生KeyPress事件。而當(dāng)用戶釋放某個(gè)鍵時(shí),發(fā)生KeyUp事件。當(dāng)用戶按住某個(gè)鍵不放時(shí),KeyDown和KeyPress事件會(huì)不停地重復(fù)觸發(fā)。表3-2列出了這些鍵盤事件的含義與說(shuō)明。10版權(quán)所有11版權(quán)所有3.鼠標(biāo)事件鼠標(biāo)是一種定位輸入設(shè)備,通常有兩個(gè)或三個(gè)按鈕(左、中和右按鈕),還可能有滾輪。它的基本操作方式主要有:?jiǎn)螕?、雙擊和滾動(dòng)。12版權(quán)所有13版權(quán)所有【案例3-2】利用鼠標(biāo)和鍵盤控制圖片顯示。窗體上用圖片框顯示一張圖片。當(dāng)在圖片框上單擊鼠標(biāo)左鍵時(shí)圖片放大10%,單擊鼠標(biāo)右鍵時(shí)圖片縮小10%。若轉(zhuǎn)動(dòng)滾輪,則圖片根據(jù)前后方向垂直移動(dòng),移動(dòng)步長(zhǎng)為12。鼠標(biāo)在圖片框上移動(dòng)時(shí),窗體標(biāo)題顯示當(dāng)前位置坐標(biāo),鼠標(biāo)在圖片框上懸停時(shí),顯示提示信息“單擊左鍵放大圖片,單擊右鍵縮小圖片,用光標(biāo)移動(dòng)圖片”。鼠標(biāo)離開(kāi)圖片框時(shí),顯示“利用鼠標(biāo)和鍵盤控制圖片顯示”。按下各方向鍵時(shí),圖片按相應(yīng)的方向移動(dòng);當(dāng)按ESC鍵時(shí),窗體關(guān)閉,退出程序;當(dāng)按下其他鍵時(shí),在窗體標(biāo)題上顯示所按的鍵的名稱。14版權(quán)所有15版權(quán)所有3.2窗體3.2.1窗體的創(chuàng)建創(chuàng)建窗體可以有兩種方法:一種是手動(dòng)創(chuàng)建,即直接編寫(xiě)代碼,一種是用項(xiàng)目模板來(lái)創(chuàng)建。無(wú)論怎樣創(chuàng)建,都要用到.NET框架的System.Windows.Forms命名空間和System.Windows.Forms.Form類。16版權(quán)所有3.2.2窗體的屬性和方法窗體的屬性決定了窗體的外觀和操作。下面是窗體的一些主要屬性:(1)Text:用來(lái)指定窗體的標(biāo)題內(nèi)容。(2)Size和StartPosition:用來(lái)指定窗體顯示的大小和位置。(3)ForeColor:用來(lái)更改窗體內(nèi)所有控件默認(rèn)前景色。(4)FormBorderStyle:用來(lái)指定窗體的邊框類型。(5)MinimizeBox和MaximinzeBox:指定窗體是否顯示最小化、最大化按鈕。(6)TopMost:用來(lái)指定窗體是否應(yīng)顯示為應(yīng)用程序的最頂層窗體。(7)WindowState:用來(lái)指定窗體運(yùn)行時(shí)的狀態(tài)。(8)Opacity:用來(lái)指定窗體的不透明度級(jí)別(0.0~1.0)。(9)Icon:用來(lái)指定窗體的圖標(biāo)。17版權(quán)所有窗體的常用方法有:(1)Acitvate():激活窗體使其獲得焦點(diǎn)。(2)BringToFront()和SendToBack():將某個(gè)窗體置于Z順序的前面(或后面)。(3)Close():關(guān)閉窗體。(4)Contains():判斷指定控件是否為窗體的子控件。(5)GetChildAtPoint():檢索位于指定位置處的子控件。(6)GetNextControl():按照窗體上子控件的Tab順序向前或向后檢索下一個(gè)控件。(7)Hide():隱藏窗體。(8)Invalidat():使窗體的特定區(qū)域無(wú)效并發(fā)送重新繪制消息。(9)Refresh():強(qiáng)制控件使其工作區(qū)無(wú)效并立既重繪自己和任何子控件。(10)ResetXXX():將XXX屬性重置為其默認(rèn)值。(11)Show()和ShowDialog():Show()和ShowDialog()都可以用來(lái)顯示窗體。18版權(quán)所有【案例3-3】啟動(dòng)界面。本案例建立一個(gè)啟動(dòng)界面程序,運(yùn)行效果如圖3-4所示。當(dāng)程序運(yùn)行時(shí),啟動(dòng)界面顯示一幅圖片,進(jìn)度條自動(dòng)開(kāi)始走動(dòng),圖片隨進(jìn)度條的走動(dòng)漸漸顯示清晰,進(jìn)度條到頭時(shí),關(guān)閉該窗口,進(jìn)入主窗口,19版權(quán)所有20版權(quán)所有3.3對(duì)話框?qū)υ捒蚴且环N簡(jiǎn)單的窗口,主要用于向用戶顯示提示信息或接受用戶輸入的信息。在C#提供了一些標(biāo)準(zhǔn)的對(duì)話框供用戶使用。對(duì)話框與窗口的不同,主要是對(duì)話框可以處于模態(tài)狀態(tài)。處于模態(tài)的對(duì)話框,要求用戶必須作出響應(yīng),否則無(wú)法激活其他窗口。21版權(quán)所有3.3.1消息對(duì)話框消息對(duì)話框是最簡(jiǎn)單的一類對(duì)話框,用來(lái)顯示一些提示、警告等信息。在.NET框架中,使用MessageBox類來(lái)封裝消息對(duì)話框,但它不能創(chuàng)建MessageBox實(shí)例,而只能調(diào)用其靜態(tài)成員方法Show顯示消息對(duì)話框。22版權(quán)所有例如,下面代碼運(yùn)行結(jié)果如圖所示。MessageBox.Show("你喜歡VisualC#.NET嗎?");23版權(quán)所有例如下面的代碼,其運(yùn)行結(jié)果如圖所示。if(DialogResult.Yes==MessageBox.Show("退出嗎?","提問(wèn)",

MessageBoxButtons.YesNo,

MessageBoxIcon.Question, MessageBoxDefaultButton.Button1 )) {

Application.Exit(); }24版權(quán)所有3.3.2通用對(duì)話框在Windows應(yīng)用程序中,經(jīng)常進(jìn)行打開(kāi)或保存文件、選擇顏色或字體、打印文檔等操作。.NET框架中System.Windows.Forms命名空間中為這些操作提供了一組標(biāo)準(zhǔn)用戶界面對(duì)話框,它們稱為“通用對(duì)話框”,并有相應(yīng)的通用對(duì)話框類支持,它們都是從一個(gè)公共的基類System.Windows.Forms.CommonDialog派生而來(lái)的。25版權(quán)所有26版權(quán)所有3.3.3自定義對(duì)話框用戶可以根據(jù)自己的需要?jiǎng)?chuàng)建對(duì)話框。自定義的對(duì)話框?qū)嶋H上也是窗體。作為對(duì)話框的窗體在外觀上與一般的窗體在外觀上是有所區(qū)別的,對(duì)話框沒(méi)有控制菜單及最大化和最小化按鈕,不能改變大小,多以模態(tài)方式顯示,以防止用戶在對(duì)話框外執(zhí)行任務(wù)。27版權(quán)所有3.4標(biāo)簽、文本框和按鈕3.4.1

標(biāo)簽(Label)

.NET框架中Label類封裝了標(biāo)簽控件。標(biāo)簽用于顯示用戶不能編輯的文本或圖像。1.標(biāo)簽的屬性(1)BackColor和AutoSize:通過(guò)將Label的BackColor屬性設(shè)置為Color.Transparent,可使該標(biāo)簽成為透明的。使用透明標(biāo)簽時(shí),請(qǐng)只使用當(dāng)前設(shè)備坐標(biāo)系在容器上繪制,否則就可能無(wú)法正確繪制Label背景。

Label控件可為單行或多行,可以為固定大小,也可以自動(dòng)調(diào)整自身大小以適應(yīng)其標(biāo)題。AutoSize

屬性設(shè)為真時(shí),標(biāo)簽自動(dòng)調(diào)整大小以適應(yīng)較大或較小的標(biāo)題。如果將AutoSize

設(shè)置為false,則Text屬性中指定的文字將切換到下一行(如果可能),但該控件不會(huì)增大。28版權(quán)所有(2)Image:獲取或設(shè)置顯示在Label上的圖像。(3)ImageAlign:獲取或設(shè)置在控件中顯示的圖像的對(duì)齊方式。(4)ImageIndex:獲取或設(shè)置在Label上顯示的圖像的索引值。(5)ImageList:獲取或設(shè)置包含要在Label控件中顯示的圖像的ImageList。(6)UseMnemonic:獲取或設(shè)置一個(gè)值,該值指示控件是否將控件的Text屬性中的“and”符(&)解釋為訪問(wèn)鍵前綴字符。

29版權(quán)所有2.使用Label控件創(chuàng)建訪問(wèn)鍵使用Label控件創(chuàng)建訪問(wèn)鍵的步驟如下:(1)先添加標(biāo)簽和另一個(gè)控件。將該標(biāo)簽的TabIndex

屬性設(shè)置為比另一個(gè)控件小1。(2)將該標(biāo)簽的UseMnemonic

屬性設(shè)置為true。(3)在該標(biāo)簽的Text屬性中使用“and”符(&)為該標(biāo)簽分配訪問(wèn)鍵。label1.UseMnemonic=true;label1.Text="&Print";label2.UseMnemonic=true;label2.Text="&Copy&&Paste";30版權(quán)所有3.使用標(biāo)簽顯示圖像除了顯示文本外,Label控件還可使用Image屬性顯示圖像,或使用ImageIndex

和ImageList

屬性組合顯示圖像。31版權(quán)所有3.4.2文本框

.NET框架中TextBox類封裝了文本框控件,它是從TextBoxBase類派生的,用于顯示或輸入文本。(1)Multiline和ScrollBars:Multiline獲取或設(shè)置一個(gè)值,該值指示它是否為多行文本框控件。ScrollBars獲取或設(shè)置哪些滾動(dòng)條應(yīng)出現(xiàn)在多行TextBox

控件中。(2)AcceptsTab

和AcceptsReturn

:AcceptsReturn獲取或設(shè)置一個(gè)值,該值指示在多行TextBox

控件中按ENTER鍵時(shí),是在控件中創(chuàng)建一行新文本還是激活窗體的默認(rèn)按鈕。AcceptsTab

獲取或設(shè)置一個(gè)值,該值指示在多行文本框控件中按TAB鍵時(shí),是否在控件中鍵入一個(gè)TAB字符,而不是按選項(xiàng)卡的順序?qū)⒔裹c(diǎn)移動(dòng)到下一個(gè)控件。32版權(quán)所有(3)MaxLength:獲取或設(shè)置用戶可在文本框控件中鍵入或粘貼的最大字符數(shù)。(4)PasswordChar:獲取或設(shè)置字符,用于屏蔽單行TextBox

控件中的密碼字符。(5)ReadOnly:獲取或設(shè)置一個(gè)值,該值指示文本框中的文本是否為只讀。33版權(quán)所有2.文本框的基本操作(1)設(shè)置焦點(diǎn)使用Focus()方法。例如:textBox1.Focus();

(2)選擇文本選擇文本一般用鼠標(biāo)或鍵盤進(jìn)行操作。如果用代碼進(jìn)行,可以使用文本框的從基類TextBaseBox繼承的方法Select()或SelectAll()。Select()方法有兩個(gè)參數(shù)分別確定要選擇文本的起始位置和要選擇文本的字符個(gè)數(shù)。也可以利用文本框的屬性來(lái)選擇文本,SelectionStart、SelectionText、SelectionLength:34版權(quán)所有(3)文本操作添加文本使用AppendText()方法,清除文本使用Clear()方法,撤銷文本的上一次操作用Undo()方法;從文本框的撤銷緩沖區(qū)中清楚關(guān)于最近操作的信息使用ClearUndo()方法。(4)限制文本輸入要限制某些文本不被輸入到TextBox

控件,可以為KeyDown

事件創(chuàng)建一個(gè)事件處理程序,以便驗(yàn)證在控件中輸入的每個(gè)字符。也可以通過(guò)將ReadOnly

屬性設(shè)置為true來(lái)限制TextBox

控件中的所有數(shù)據(jù)項(xiàng)輸入。(5)獲取多行文本框文本通過(guò)Text屬性可獲得全部文本,不能單獨(dú)獲得某一行文本。要獲得某一行文本,可使用Lines屬性,Lines屬性是一個(gè)字符串?dāng)?shù)組,它的每一個(gè)元素對(duì)應(yīng)多行文本框的一行文本。35版權(quán)所有3.文本框的常用事件(1)GotFocus事件:該事件在文本框接收焦點(diǎn)時(shí)發(fā)生。(2)LostFocus事件:該事件在文本框失去焦點(diǎn)時(shí)發(fā)生。(3)TextChanged事件:文本的Text屬性的值改變時(shí)發(fā)生。

36版權(quán)所有3.5菜單和多文檔界面3.5.1菜單Windows窗體上的菜單是使用MainMenu

對(duì)象創(chuàng)建的,該對(duì)象是一個(gè)MenuItem

對(duì)象集合??梢栽谠O(shè)計(jì)時(shí)向Windows窗體添加菜單,方法是添加MainMenu

組件然后使用菜單設(shè)計(jì)器向其追加菜單項(xiàng)。還可以用編程方法添加菜單,方法是向Windows窗體添加一個(gè)或多個(gè)MainMenu

對(duì)象并向該集合中添加MenuItem

對(duì)象。37版權(quán)所有1.菜單的主要屬性(1)MainMenu的屬性

MenuItems:獲取一個(gè)值,通過(guò)該值指示與菜單關(guān)聯(lián)的MenuItem

對(duì)象的集合。通過(guò)集合類的通用操作方法Add、AddRange等可以用來(lái)添加菜單項(xiàng)。

RightToLeft:獲取或設(shè)置控件顯示的文本是否從右向左顯示。(2)MenuItem的主要屬性

Checked:獲取或設(shè)置一個(gè)值,通過(guò)該值指示選中標(biāo)記是否出現(xiàn)在菜單項(xiàng)文本的旁邊。

Index:獲取或設(shè)置一個(gè)值,通過(guò)該值指示菜單項(xiàng)在其父菜單中的位置。

IsParent:獲取一個(gè)值,通過(guò)該值指示菜單項(xiàng)是否包含子菜單項(xiàng)。

MenuItems:獲取一個(gè)值,通過(guò)該值指示與菜單關(guān)聯(lián)的MenuItem

對(duì)象的集合。

MergeOrder:獲取或設(shè)置一個(gè)值,通過(guò)該值指示菜單項(xiàng)與另一個(gè)項(xiàng)合并時(shí)的相對(duì)位置。38版權(quán)所有MergeType:獲取或設(shè)置一個(gè)值,通過(guò)該值指示該菜單項(xiàng)的菜單與另一個(gè)菜單合并時(shí)該菜單項(xiàng)的行為。Mnemonic:獲取一個(gè)值,通過(guò)該值指示與此菜單項(xiàng)關(guān)聯(lián)的助記字符。MdiList:獲取或設(shè)置一個(gè)值,通過(guò)該值指示是否使用在關(guān)聯(lián)窗體內(nèi)顯示的多文檔界面(MDI)子窗口列表來(lái)填充菜單項(xiàng)。RadioCheck:獲取或設(shè)置一個(gè)值,通過(guò)該值指示MenuItem(如果已選中)是否顯示單選按鈕而不是選中標(biāo)記。Shortcut:獲取或設(shè)置一個(gè)值,通過(guò)該值指示與菜單項(xiàng)關(guān)聯(lián)的快捷鍵。ShowShortcut:獲取或設(shè)置一個(gè)值,通過(guò)該值指示與菜單項(xiàng)關(guān)聯(lián)的快捷鍵是否在菜單項(xiàng)標(biāo)題的旁邊顯示。Text:獲取或設(shè)置一個(gè)值,通過(guò)該值指示菜單項(xiàng)標(biāo)題。Visible:獲取或設(shè)置一個(gè)值,通過(guò)該值指示菜單項(xiàng)是否可見(jiàn)。39版權(quán)所有2.菜單的事件在菜單類Menu、MainMenu和MenuItem中,只有MenuItem類具有事件。常用的事件有Click、Popup和Select。(1)Click事件。當(dāng)單擊菜單項(xiàng)或使用為該菜單項(xiàng)定義的快捷鍵或訪問(wèn)鍵選擇菜單項(xiàng)時(shí)發(fā)生。(2)Popup事件。在顯示菜單項(xiàng)的菜單項(xiàng)列表之前發(fā)生。(3)Select事件。當(dāng)用戶將光標(biāo)放在菜單項(xiàng)上時(shí)發(fā)生。40版權(quán)所有3.使用菜單設(shè)計(jì)器創(chuàng)建菜單的一般步驟(1)在設(shè)計(jì)時(shí)向Windows窗體添加菜單。(2)添加菜單項(xiàng)。(3)修改和刪除菜單項(xiàng)。(4)添加分隔符和快捷鍵。

(5)為菜單項(xiàng)的Click事件添加代碼。41版權(quán)所有3.5.2多文檔界面1.多文檔界面的特性所有子窗體均顯示在MDI父窗體的工作區(qū)中。用戶可以改變子窗體大小或移動(dòng)子窗體,但被限制在MDI父窗體中。當(dāng)最小化MDI子窗體時(shí),它的圖標(biāo)將顯示于MDI父窗體上而不是在任務(wù)欄中。當(dāng)最小化MDI父窗體時(shí),所有的子窗體也被最小化,只有MDI父窗體的圖標(biāo)出現(xiàn)在任務(wù)欄。當(dāng)最大化一個(gè)MDI子窗體時(shí),它的標(biāo)題與MDI父窗體的標(biāo)題一起顯示在MDI父窗體的標(biāo)題欄上。MDI父窗體和MDI子窗體都可以有自己的菜單,當(dāng)子窗體被加載時(shí),其上的菜單可以按指定的方式與父窗體的菜單合并。42版權(quán)所有2.與多文檔界面有關(guān)的屬性、方法和事件(1)常用的MDI父窗體的屬性ActiveMdiChild:表示當(dāng)前活動(dòng)的MDI子窗體。IsMdiContainer:獲取或設(shè)置窗體是否為MDI父窗體。MdiChildren:以數(shù)組形式返回MDI子窗體。(2)常用的MDI子窗體的屬性:IsMdiChild:獲取或設(shè)置窗體是否都為MDI子窗體。MdiParent:指定子窗體的MDI父窗體。(3)與多文檔界面有關(guān)的方法和事件與多文檔界面有關(guān)的方法,主要是父窗體的LayoutMdi方法,該方法的調(diào)用格式如下:MDI父窗體名.LayoutMdi(Value);43版權(quán)所有3.菜單合并父窗體和子窗體可以使用不同的菜單,這些菜單會(huì)在打開(kāi)子窗體時(shí)合并??梢酝ㄟ^(guò)設(shè)置MergeOrder屬性和MergeType屬性指定合并的方式。(1)MergeOrder:用來(lái)確定當(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)的顯示方式。44版權(quán)所有3.6工具欄和狀態(tài)欄在Windows窗體中,ToolBar類用來(lái)封裝工具欄的外觀和功能。1.常用的屬性(1)ToolBar的屬性(2)ToolBarButton的屬性2.用設(shè)計(jì)器向窗體添加工具欄一般步驟45版權(quán)所有3.6.2狀態(tài)欄通過(guò)將ShowPanels

屬性設(shè)置為false(默認(rèn)值)并將狀態(tài)欄的Text屬性設(shè)置為希望出現(xiàn)在狀態(tài)欄中的文本,可在狀態(tài)欄中顯示一個(gè)消息。通過(guò)將ShowPanels

屬性設(shè)置為true并使用StatusBarPanelCollection

類的Add方法,可將狀態(tài)欄分割為多個(gè)面板以顯示一種以上類型的信息。46版權(quán)所有3.7組框和面板3.7.1組框(GroupBox)GroupBox

顯示圍繞一組控件的框架(帶或不帶標(biāo)題)。使用GroupBox

對(duì)窗體上的控件集合進(jìn)行邏輯分組。組框是可用于定義控件組的容器控件。組框的典型用途是作為包含RadioButton控件的邏輯組。如果有兩個(gè)組框,每個(gè)組框都包含多個(gè)單選按鈕,每組按鈕都互相排斥,則每組設(shè)置一個(gè)選項(xiàng)值。通過(guò)使用Controls屬性的Add方法,可將控件添加到GroupBox。47版權(quán)所有3.7.2面板(Panel)Panel是一個(gè)包含其他控件的控件??梢允褂肞anel來(lái)組合控件的集合,例如一組RadioButton

控件。與其他容器控件(如GroupBox

控件)一樣,如果Panel控件的Enabled屬性設(shè)置為false,則也會(huì)禁用包含在Panel中的控件。48版權(quán)所有3.8復(fù)選鈕和單選鈕3.8.1復(fù)選鈕(CheckBox)

CheckBox可為用戶提供一項(xiàng)選擇,如“真/假”或“是/否”。復(fù)選鈕控件可以顯示一個(gè)圖像或文本,或兩者都顯示。多個(gè)CheckBox控件構(gòu)成一組選項(xiàng)時(shí),可以進(jìn)行多重選擇,相互之間不影響。49版權(quán)所有(1)復(fù)選鈕的基本屬性Appearance:獲取或設(shè)置確定復(fù)選框控件外觀的值。如果將Appearance屬性設(shè)置為Appearance.Button,則RadioButton

控件的外觀可以像命令按鈕一樣。當(dāng)選定它時(shí),它看似已被按下。Text:獲取或設(shè)置與此控件關(guān)聯(lián)的文本。TextAlign:獲取或設(shè)置與CheckBox

控件關(guān)聯(lián)的文本標(biāo)簽的對(duì)齊方式。Image:獲取或設(shè)置顯示在按鈕控件上的圖像。ImageList:獲取或設(shè)置包含按鈕控件上顯示的Image的ImageList。ImageIndex:獲取或設(shè)置按鈕控件上顯示的圖像的圖像列表索引值。Checked:獲取或設(shè)置一個(gè)值,該值指示是否已選中控件。50版權(quán)所有(2)復(fù)選鈕的主要事件CheckedChanged事件。當(dāng)Checked屬性的值更改時(shí)發(fā)生。CheckStateChanged事件。當(dāng)CheckState

屬性的值更改時(shí)發(fā)生。Click事件。在單擊控件時(shí)發(fā)生。51版權(quán)所有3.8.2單選按鈕(RadioButton)RadioButton

和CheckBox

控件的功能相似:它們提供用戶可以選擇或清除的選項(xiàng)。不同之處在于,可以同時(shí)選定多個(gè)CheckBox

控件,而單選按鈕卻是互相排斥的。52版權(quán)所有(1)單選按鈕的基本屬性Appearance:獲取或設(shè)置確定單選按鈕控件外觀的值。如果將Appearance屬性設(shè)置為Appearance.Button,則RadioButton

控件的外觀可以像命令按鈕一樣。當(dāng)選定它時(shí),它看似已被按下Text:獲取或設(shè)置與此控件關(guān)聯(lián)的文本。TextAlign:獲取或設(shè)置與CheckBox

控件關(guān)聯(lián)的文本標(biāo)簽的對(duì)齊方式。Image:獲取或設(shè)置顯示在按鈕控件上的圖像。ImageList:獲取或設(shè)置包含按鈕控件上顯示的Image的ImageList。ImageIndex:獲取或設(shè)置按鈕控件上顯示的圖像的圖像列表索引值。Checked:獲取或設(shè)置一個(gè)值,該值指示是否已選中控件。53版權(quán)所有(2)單選按鈕的主要事件CheckedChanged事件。當(dāng)Checked屬性的值更改時(shí)發(fā)生。Click事件。在單擊控件時(shí)發(fā)生。54版權(quán)所有【案例3-6】單選鈕和復(fù)選鈕的使用。本案例建立一個(gè)使用單選鈕和復(fù)選鈕的應(yīng)用程序,界面上有一個(gè)文本框,兩組單選鈕和一組復(fù)選鈕。兩組單選鈕分別用于設(shè)置文本框的字體和字號(hào),一組復(fù)選鈕用于設(shè)置文本框的字型。55版權(quán)所有3.9列表框、組合框和復(fù)選列表框3.9.1列表框(ListBox)ListBox

控件通過(guò)顯示多個(gè)選擇項(xiàng),供用戶選擇其中一項(xiàng)或多項(xiàng),達(dá)到與用戶對(duì)話的目的。ListBox

控件可使用SelectionMode

屬性提供單項(xiàng)選擇或多重選擇。ListBox

還提供MultiColumn

屬性,以啟用按多列顯示項(xiàng)而不是項(xiàng)的垂直列表。這使控件得以顯示更多可見(jiàn)項(xiàng),并使用戶不必滾動(dòng)到某項(xiàng)。56版權(quán)所有(1)列表框的主要屬性Items:獲取或設(shè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論