cWindows應用程序設計基礎課件_第1頁
cWindows應用程序設計基礎課件_第2頁
cWindows應用程序設計基礎課件_第3頁
cWindows應用程序設計基礎課件_第4頁
cWindows應用程序設計基礎課件_第5頁
已閱讀5頁,還剩83頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章

Windows應用程序設計基礎

-基本控件第9章

Windows應用程序設計基礎

-基本控件

9.3窗體控件概述

控件是包含在窗體上的對象,是構成用戶界面的基本元素,也是C#可視化編程的重要工具。使用控件可使程序的設計簡化避免大量重復性工作,簡化設計過程,有效地提高設計效率。對于一個程序開發人員而言,必須掌握每類控件的功能、用途,并掌握其常用的屬性、事件和方法。22023/7/24C#程序設計實用教程

9.3窗體控件概述

控件是包含在窗體上

9.3窗體控件概述

在VS2005中,工具箱中包含了建立應用程序的各種控件。工具箱分為Windows窗體、公共控件、容器、菜單和工具欄、數據、組件、打印、對話框等部分,常用的Windows窗體控件放在“Windows窗體”選項卡下。工具箱中有數十個常用的Windows窗體控件,它們以圖標的方式顯示在工具箱中,其名稱顯示于圖標的右側。32023/7/24C#程序設計實用教程

9.3窗體控件概述

在VS2005中,

9.3窗體控件概述

在介紹具體控件之前,首先在此探討一下各個控件共有的屬性、事件和方法。在C#中,所有的窗體控件,比如標簽控件、文本框控件、按鈕控件等全部都是繼承于:System.Windows.Forms.Control。作為各種窗體控件的基類,Control類實現了所有窗體交互控件的基本功能。Control類的屬性、方法和事件是所有窗體控件所公有的,而且其中很多是在編程中經常會遇到的。42023/7/24C#程序設計實用教程

9.3窗體控件概述

在介紹具體控件之前

9.3窗體控件概述

(1)Control類的屬性Control類的屬性描述了一個窗體控件的所有公共屬性,可以在屬性(Properties)窗口中查看或修改窗體控件的屬性。常用的屬性如下:Name屬性每一個控件都有一個Name(名字)屬性,在應用程序中,可通過此屬性來引用這個控件。C#會給每個新添加的控件指定一個默認名。在應用程序設計中,可根據需要將控件的默認名字改成更有實際代表意義的名字。52023/7/24C#程序設計實用教程

9.3窗體控件概述

(1)Contro

9.3窗體控件概述

Text屬性在C#中,每一個控件對象都有Text屬性。Text屬性在很多控件中都有重要的意義和作用。例如,在標簽控件中顯示的文字、在文本框中用戶輸入的文字、組合框和窗體中的標題等都是用控件的Text進行設定的。對于Text屬性的設置過程及設置結果如圖9-9、9-10所示。62023/7/24C#程序設計實用教程

9.3窗體控件概述

Text屬性620

9.3窗體控件概述

Anchor屬性Anchor的意思是“錨”,那么Anchor屬性是用來確定此控件與其容器控件的固定關系的。在此,所謂容器控件是指什么呢?顧名思義,容器控件就是像一般的容器一樣可以存放別的控件的控件!例如,窗體控件中會包含很多的控件,像標簽控件、文本框等。這時,稱包含控件的控件為容器控件或父控件,而里面的控件為子控件。顯然,這必然涉及到一個問題,即子控件與父控件的位置關系問題。即當父控件的位置、大小變化時,子控件按照什么樣的原則改變其位置、大小。Anchor屬性就用于設置此原則。72023/7/24C#程序設計實用教程

9.3窗體控件概述

Anchor屬性7

9.3窗體控件概述

對于Anchor屬性,可以設定Top、Bottom、Right、Left中任意的幾種,設置的方法非常直觀,如圖9-11所示。82023/7/24C#程序設計實用教程

9.3窗體控件概述

對于Anchor屬

9.3窗體控件概述

圖9-11中選中變黑的方位即為設定的控件方位,圖中所示的方位為Top、Left、Bottom。此時,如果容器控件變化,子控件將保證其上邊緣與容器上邊的距離、左邊緣與容器左邊的距離,底邊與容器底邊的距離。其運行效果如圖9-12所示。92023/7/24C#程序設計實用教程

9.3窗體控件概述

圖9-11中選中變

9.3窗體控件概述

Dock屬性Dock屬性規定了子控件與父控件的邊緣依賴關系。Dock的效果,如圖9-13所示。10Dock的值有6種,分別是Top、Bottom、Left、Right、Fill,最后還有默認值None。一旦Dock值被設定,子控件就會發生變化與父控件選定的邊緣相融在一起。2023/7/24C#程序設計實用教程

9.3窗體控件概述

Dock屬性10D

9.3窗體控件概述

(2)Control類的方法可以調用Control類的方法來獲得控件的一些信息,或者設置控件的屬性值及行為狀態。例如:Focus方法可設置此控件獲得的焦點;Refresh方法可重畫控件;Select方法可激活控件;Show方法可顯示控件等。112023/7/24C#程序設計實用教程

9.3窗體控件概述

(2)Contro

9.3窗體控件概述

(3)Control類的事件在C#中,當用戶進行某一項操作時,會引發某個事件的發生,此時就會調用事件處理程序代碼,實現對程序的控制。事件驅動實現是基于窗體的消息傳遞和消息循環機制的。在C#中,所有的機制都被封裝在控件之中,極大方便了編寫事件的驅動程序。如果希望能夠更加深入地操作,或定義自己的事件,就需要聯合使用委托(Delegate)和事件(Event),可以靈活地添加、修改事件的響應,并自定義事件的處理方法。例如,Control類的可響應的事件有:單擊時發生的Click事件;雙擊時發生的DoubleClick事件;取得焦點時發生的GetFocus事件;鼠標移動時發生的MouseMove事件等。122023/7/24C#程序設計實用教程

9.3窗體控件概述

(3)Contro

9.4常用控件

窗體是由一個個控件構成的,因此熟悉控件是進行合理、有效的程序開發的重要前提。本節內容將針對Windows窗體應用程序中常見的控件進行詳細介紹。132023/7/24C#程序設計實用教程

9.4常用控件

窗體是由一個個控件

9.4.1按鈕控件

按鈕(Button)是用戶與應用程序交互的最常用的工具。它用于接收用戶的操作信息,去執行預先規定的命令,觸發相應的事件過程,以實現指定的功能。1.常用屬性(1)Text屬性該屬性用于設定按鈕上顯示的文本。該屬性也可為按鈕創建快捷方式,其方法是在作為快捷鍵的字母前加一個“&”字符,則在程序運行時,命令按鈕上該字母帶有下劃線,該字母就成為快捷鍵。例如,某個按鈕的Text屬性設置為“&Display”,程序運行時,就會顯示為“Display”。142023/7/24C#程序設計實用教程

9.4.1按鈕控件

9.4.1按鈕控件

(2)FlatStyle屬性該屬性指定了按鈕的外觀風格,它有4個可選值。分別是:Flat、Popup、System、Standard。該屬性的默認值為Standard。(3)Image屬性用于設定在按鈕上顯示的圖形。(4)ImageAlign屬性當圖片顯示在命令按鈕上時,可以通過ImageAlign屬性調節其在按鈕上的位置。(5)Enable屬性用于設定控件是否可用,不可用,則用灰色表示。(6)Visible屬性用于設定控件是否可見,不可見,則隱藏。注意:上述的屬性中,前4項為外觀屬性;而后2項為行為屬性。152023/7/24C#程序設計實用教程

9.4.1按鈕控件

9.4.1按鈕控件

2.響應的事件如果按鈕具有焦點,就可以使用鼠標左鍵、Enter鍵或空格鍵觸發該按鈕的Click事件。當使用ShowDialog方法顯示窗體時,可以使用按鈕的DialogResult屬性指定ShowDialog的返回值。【例9-7】按鈕控件的運用。(1)為窗體Form1添加一個計數器nCounter,并添加3個按鈕控件,分別完成遞增計數器、遞減計數器、通過消息框提示計數器的值的功能,并添加1個Label控件來顯示每次運算后的計數器值。完成的窗體界面如圖9-14所示。162023/7/24C#程序設計實用教程

9.4.1按鈕控件

9.4.1按鈕控件

(2)設置窗體和各控件的屬性,如表9-2所示。172023/7/24C#程序設計實用教程

9.4.1按鈕控件

9.4.1按鈕控件

(3)切換到代碼窗口,創建事件過程:privateintnCounter;

//第一次加載時,進行計數器和lblResult的初始化privatevoidForm1_Load(objectsender,EventArgse){this.nCounter=50;this.ShowCounter();}//進行遞增操作,并提示新值privatevoidbtnInc_Click(objectsender,EventArgse){this.nCounter++;this.ShowCounter();}182023/7/24C#程序設計實用教程

9.4.1按鈕控件

9.4.1按鈕控件

//進行遞減操作,并提示新值privatevoidbtnDes_Click(objectsender,EventArgse){this.nCounter--;this.ShowCounter();}

//通過MessageBox提示當前的值privatevoidbtnMsg_Click(objectsender,EventArgse){stringstrMsg="當前計數器="+this.nCounter.ToString("D8");MessageBox.Show(strMsg,"提示");

192023/7/24C#程序設計實用教程

9.4.1按鈕控件

9.4.1按鈕控件

//顯示計數器值到Label控件lblResultprivatevoidShowCounter(){stringstrMsg=this.nCounter.ToString("D8");this.lblResult.Text=strMsg;}202023/7/24C#程序設計實用教程

9.4.1按鈕控件

9.4.1按鈕控件

程序運行結果如圖9-15所示。212023/7/24C#程序設計實用教程

9.4.1按鈕控件

9.4.2標簽控件

標簽(Label)主要用來顯示文本。通常用標簽來為其他控件顯示說明信息、窗體的提示信息,或者用來顯示處理結果等信息。但是,標簽顯示的文本不能被直接編輯。除了顯示文本外,標簽還可使用Image屬性顯示圖像,或使用ImageIndex和ImageList屬性組合顯示圖像。222023/7/24C#程序設計實用教程

9.4.2標簽控件

9.4.2標簽控件

1.常用屬性(1)Text屬性該屬性用于設定標簽顯示的文本,可通過TextAlign屬性設置文本的對齊方式。(2)BorderStyle屬性該屬性用于設定標簽的邊框形式,共有3個設定值,分別是None、FixedSingle、Fixed3D。該屬性的默認值為None。(3)BackColor屬性用于設定標簽的背景色。(4)ForeColor屬性用于設定標簽中文本的顏色。(5)Font屬性用于設定標簽中文本的字體、大小、粗體、斜體、刪除線等。232023/7/24C#程序設計實用教程

9.4.2標簽控件

9.4.2標簽控件

(6)Image屬性用于設定標簽的背景圖片,可通過ImageAlign屬性設置圖片的對齊方式。(7)Enable屬性用于設定控件是否可用,不可用,則用灰色表示。(8)Visible屬性用于設定控件是否可見,不可見,則隱藏。(9)AutoSize屬性用于設定控件是否根據文本自動調整,設置為true表示自動調整。注意:上述的屬性中,前6項為外觀屬性;而后3項為行為屬性。242023/7/24C#程序設計實用教程

9.4.2標簽控件

9.4.2標簽控件

2.響應的事件標簽控件常用的事件有:Click事件和DoubleClick事件。252023/7/24C#程序設計實用教程

9.4.2標簽控件

9.4.2標簽控件

【例9-3】標簽控件的運用。對窗體上的3個標簽控件的參數進行設置,用來顯示文本。程序代碼如下:privatevoidForm1_Load(objectsender,EventArgse){//label1參數設置,默認字體為宋體9號、前景色為黑色this.label1.AutoSize=true;this.label1.BackColor=System.Drawing.Color.White;this.label1.Text="宋體9號-白底-黑字";

262023/7/24C#程序設計實用教程

9.4.2標簽控件

9.4.2標簽控件

//label2參數設置,默認字體為宋體9號、前景色為黑色this.label2.AutoSize=true;this.label2.BackColor=System.Drawing.Color.Black;this.label2.Font=newSystem.Drawing.Font("宋體",10.5F,System.Drawing.FontStyle.Regular,System.Drawing.GraphicsUnit.Point,((byte)(134)));this.label2.ForeColor=System.Drawing.Color.White;this.label2.Text="宋體10號-黑底-白字“;

272023/7/24C#程序設計實用教程

9.4.2標簽控件

9.4.2標簽控件

//label3參數設置this.label3.AutoSize=true;this.label3.BackColor=System.Drawing.Color.Blue;this.label3.Font=newSystem.Drawing.Font("楷體_GB2312",14.25F,System.Drawing.FontStyle.Regular,System.Drawing.GraphicsUnit.Point,((byte)(134)));this.label3.ForeColor=System.Drawing.Color.Red;this.label3.Text="楷體14號-藍底-紅字";}282023/7/24C#程序設計實用教程

9.4.2標簽控件

9.4.2標簽控件

程序運行結果如圖9-16所示。292023/7/24C#程序設計實用教程

9.4.2標簽控件

9.4.3文本框控件

在C#中,文本框(TextBox)是最常用的和最簡單的文本顯示和輸入控件。文本框有兩種用途,一是可以用來輸出或顯示文本信息;二是可以接受從鍵盤輸入的信息。1.常用屬性(1)Text屬性該屬性用于設定文本框顯示的文本,可通過TextAlign屬性設置文本的對齊方式。(2)BackColor屬性用于設定文本框的背景色。(3)ForeColor屬性用于設定文本框中文本的顏色。302023/7/24C#程序設計實用教程

9.4.3文本框控件

9.4.3文本框控件

(4)Font屬性用于設定文本框中文本的字體、大小、粗體、斜體、刪除線等。(5)PasswordChar屬性文本框控件以密碼輸入方式使用,輸入字母用該屬性指定字符屏蔽。(6)Enable屬性用于設定文本框控件是否可用,不可用,則用灰色表示。(7)Visible屬性用于設定文本框控件是否可見,不可見,則隱藏。(8)ReadOnly屬性用于設定文本框控件是否只讀。(9)MultiLine屬性用于設定文本框控件是否包多行文本。注意:上述的屬性中,前5項為外觀屬性;而后4項為行為屬性。312023/7/24C#程序設計實用教程

9.4.3文本框控件

9.4.3文本框控件

2.常用的方法(1)Clear方法用于清除文本框中已有的文本。(2)AppendText方法用于文本框最后追加文本。322023/7/24C#程序設計實用教程

9.4.3文本框控件

9.4.3文本框控件

3.常用的事件在文本框控件所能響應的事件中,TextChanged、Enter和Leave是常用的事件。(1)TextChanged事件當文本框的文本內容發生變化時,觸發該事件。當向文本框輸入信息時,每輸入一個字符,就會引發一次TextChanged事件。(2)Enter事件當文本框獲得焦點時,就會引發的事件。(3)Leave事件當文本框失去焦點時,就會引發的事件。332023/7/24C#程序設計實用教程

9.4.3文本框控件

9.4.3文本框控件

【例9-9】文本框控件的運用。實現步驟如下:(1)為窗體Form1添加2個TextBox控件:tbInput和tbHint,前者可編輯單行文本,用來獲取用戶輸入;后者用于顯示數據,應設置為只讀多行文本。同時,再添加1個Label控件lblCopy,用來顯示輸入文本框中數據。342023/7/24C#程序設計實用教程

9.4.3文本框控件

9.4.3文本框控件

(2)在此例中,通過程序代碼設置相應的控件的屬性。主要程序代碼如下:privatevoidForm1_Load(objectsender,EventArgse){//設置2個文本框的屬性this.tbInput.ForeColor=Color.Blue;this.tbHint.BackColor=Color.White;this.tbHint.ForeColor=Color.Green;this.tbHint.ReadOnly=true;}352023/7/24C#程序設計實用教程

9.4.3文本框控件

9.4.3文本框控件

privatevoidtbInput_Enter(objectsender,EventArgse){//光標進入清除原有文本this.tbInput.Clear();}

privatevoidtbInput_Leave(objectsender,EventArgse){//焦點退出,將文本添加到tbHint新的一行this.tbHint.AppendText(this.tbInput.Text+Environment.NewLine);}362023/7/24C#程序設計實用教程

9.4.3文本框控件

9.4.3文本框控件

privatevoidtbInput_TextChanged(objectsender,EventArgse){//將當前tbInput中文本內容同步顯示到lblCopy中this.lblCopy.Text=this.tbInput.Text;}注意:在tbInput_Leave事件中將編輯好的文本通過方法TextBox.AppendText()追加tbHint中;在tbInput_TextChanged事件中將tbInput中最新的文本同步顯示到lbCopy控件上。程序運行結果如圖9-17所示。372023/7/24C#程序設計實用教程

9.4.3文本框控件

9.4.4單選按鈕控件

單選按鈕(RadioButton)控件為用戶提供由兩個或多個互斥選項組成的選項集。當用戶選中某單選項按鈕時,同一組中的其他單選項按鈕不能同時選定,該控件以圓圈內加點的方式表示選中。單選按鈕用來讓用戶在一組相關的選項中選擇一項,因此單選按鈕控件總是成組出現。直接添加到一個窗體中的所有單選按鈕將形成一個組。若要添加不同的組,必須將它們放到面板或分組框中。將若干RadionButton控件放在一個GroupBox控件內組成一組時,當這一組中的某個單選按鈕控件被選中時,該組中的其他單選控件將自動處于不選中狀態。382023/7/24C#程序設計實用教程

9.4.4單選按鈕控件

9.4.4單選按鈕控件

1.常用屬性(1)Text屬性該屬性用于設置單選按鈕旁邊的說明文字,以說明單選按鈕的用途。(2)Check屬性表示單選按鈕是否被選中,選中則Checked值為True,否則為False。2.響應的事件單選按鈕響應的事件主要是Click事件和CheckedChanged事件。當鼠標單擊單選按鈕時,觸發Click事件,并且改變Checked屬性值。Checked屬性值的改變,同時將觸發CheckedChanged事件。392023/7/24C#程序設計實用教程

9.4.4單選按鈕控件

9.4.4單選按鈕控件

【例9-10】單選按鈕控件的運用。通過選擇不同的單選按鈕,實現在文本框中顯示不同水果的價格。實現步驟如下:(1)創建如圖9-18所示的窗體。402023/7/24C#程序設計實用教程

9.4.4單選按鈕控件

9.4.4單選按鈕控件

(2)設置窗體和各控件的屬性,如表9-3所示。412023/7/24C#程序設計實用教程

9.4.4單選按鈕控件

9.4.4單選按鈕控件

(3)打開代碼窗口,編寫事件過程。privatevoidrdoApple_CheckedChanged(objectsender,EventArgse){txtPrice.Text="10.0";}

privatevoidrdoBanana_CheckedChanged(objectsender,EventArgse){txtPrice.Text="8.5";}422023/7/24C#程序設計實用教程

9.4.4單選按鈕控件

9.4.4單選按鈕控件

privatevoidrdoPineapple_CheckedChanged(objectsender,EventArgse){txtPrice.Text="12.5";}432023/7/24C#程序設計實用教程

9.4.4單選按鈕控件

9.4.5復選框控件

復選按鈕(CheckBox)控件,它與單選按鈕一樣,也給用戶提供一組選項供其選擇。但它與單選按鈕有所不同,每個復選框都是一個單獨的選項,用戶既可以選擇它,也可以不選擇它,不存在互斥的問題,可以同時選擇多項。1.常用屬性(1)Text屬性。該屬性用于設置復選框旁邊的說明文字,以說明復選框的用途。(2)Check屬性。表示復選框是否被選擇。True表示復選框被選擇,False表示復選框未被選擇。442023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.5復選框控件

(3)CheckState屬性。反映該復選框的狀態,有3個可選值。Checked:表示復選框當前被選中。Unchecked:表示復選框當前未被選中。Indeterminate:表示復選框當前狀態未定,此時該復選框呈灰色。2.響應的事件復選框響應的事件主要是Click事件、CheckedChanged事件和CheckStateChanged事件。當鼠標單擊復選框時,觸發Click事件,并且改變Checked屬性值和CheckState屬性值。Checked屬性值的改變,同時將觸發CheckedChanged事件;CheckState屬性值的改變,同時將觸發CheckStateChanged事件。452023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.5復選框控件

【例9-11】復選框控件的運用。通過選擇不同的復選框,實現輸出選中的業余愛好。實現步驟如下:(1)創建一個Windows窗體應用的程序,添加如圖9-19所示的控件。(2)編寫“確定”按鈕btnOk和“退出”btnExit的代碼。其中“確定”按鈕功能為顯示一個對話框,輸出用戶用戶所填內容;“退出”按鈕功能為結束程序。462023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.5復選框控件

472023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.5復選框控件

(3)程序的完整代碼如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;

namespaceUseCheckBox{publicpartialclassForm1:Form{

482023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.5復選框控件

publicForm1(){InitializeComponent();}

//檢查用戶輸入的信息是否有效privatevoidtxtName_Validating(objectsender,CancelEventArgse){if(txtName.Text.Trim()==string.Empty){MessageBox.Show("姓名為空,請重新輸入!");txtName.Focus();}}492023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.5復選框控件

privatevoidbtnExit_Click(objectsender,EventArgse){this.Close();}502023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.5復選框控件

privatevoidbtnOk_Click(objectsender,EventArgse){stringstrUser=string.Empty;strUser="姓名:"+txtName.Text+"\n";strUser=strUser+"業余愛好:"+(chkMovie.Checked?"電影

":"")+(chkMusic.Checked?"音樂

":"")+(chkSport.Checked?"體育

":"")+"\n";DialogResultresult=MessageBox.Show(strUser,"信息確認",MessageBoxButtons.OKCancel,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1);if(result==DialogResult.OK){txtName.Clear();chkMovie.Checked=false;chkMusic.Checked=false;chkSport.Checked=false;}}

512023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.5復選框控件

privatevoidbtnExit_MouseEnter(objectsender,EventArgse){txtName.CausesValidation=false;}

privatevoidbtnExit_MouseLeave(objectsender,EventArgse){txtName.CausesValidation=true;}}}522023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.5復選框控件

單擊“信息確認”對話框中的“確定”按鈕,將會清除已輸入的內容,包括復選框的選中狀態。53程序運行,輸入相應的內容,如圖9-20所示。單擊“確定”按鈕后,彈出的對話框如圖9-21所示。2023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.5復選框控件

說明:代碼中用到了MessageBox的另一個構造方法,這種方法使得MessageBox的外觀更加多樣化,包括了MessageBox的標題(Title)、圖標(MessageBoxIcons)的按鈕(MessageBoxButtons)。另外,程序中還編寫了btnExit的Enter和Leave事件,目的是為了在單擊“退出”按鈕時,不引發TextBox控件的Validating事件,防止多余的提示;在Leave事件中又恢復TextBox控件的Validating事件。讀者可以先刪除該段代碼,以查看相應的效果。542023/7/24C#程序設計實用教程

9.4.5復選框控件

9.4.6列表框

列表框(ListBox)控件提供一個項目列表,用戶可以從中選擇一項或多項。在列表框內的項目稱為列表框,列表項的加入是按一定的順序進行的,這個順序號稱為索引號。列表框內列表項的索引號是從0開始的,即第一個加入的列表項索引號為0,其余索引項的索引號依次類推。552023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

1.常用屬性(1)Items屬性通過該屬性,設置或獲取列表框的項。用戶可以事先在屬性窗口中設置,也可以在程序中進行設置。(2)Multicolumn屬性用于設置列表框是否多列列表框,默認值為False,表示列表項一單列顯示。562023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

(3)SelectionMode屬性該屬性用于設定列表框選擇屬性,共有4個可選值:None:表示不允許進行選擇。One:表示只允許選擇其中一項。此值為默認值。MultiSimple:表示允許同時選擇多個列表項。MultiExtended:用鼠標和Shift鍵組合可以選擇連續的列表項;用鼠標和Ctrl鍵組合可以選擇不連續的列表項。572023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

(4)SelectedItem屬性獲取或設置列表框中的當前選定項。(5)SelectedItems屬性獲取或設置列表框中當前選定項的集合。(6)SelectedIndex屬性獲取或設置列表框中的當前選定項的從零開始的索引。在編程時,用戶可以捕獲該屬性值,然后根據該值來進行相應的動作。注意:上述的屬性中,前2項為外觀屬性;而后4項為行為屬性。582023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

2.響應的事件列表框控件除了能響應常用的Click、DoubleClick、GotFocus、LostFocus等事件外,還可響應特有的SelectedIndexChanged事件。SelectedIndexChanged事件:當用戶改變列表中的選擇時,將會觸發此事件。592023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

3.常用的方法列表框的列表項可以在屬性窗口中通過Item屬性來設置,也可以在應用程序中用Items.Add或Items.Insert方法來添加,用Items.Remove或Items.Clear方法刪除。(1)Items.Add方法Items.Add方法的功能是把一個列表項加入列表框的底部。其一般格式如下: Listname.Items.Add(Item)其中,Listname是列表控件的名稱;Items是要加入列表框的列表框,必須是一個字符串表達式。602023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

(2)Items.Insert方法Items.Insert方法的功能是把一個列表項插入到列表框的指定位置。其一般格式如下: Listname.Items.Insert(Index,列表項)其中,Index是新增列表項在列表框中的指定位置。Index值為0時,表示列表項添加到列表框的第一個位置。(3)Items.Remove方法Items.Remove方法的功能是清除列表框中的指定列表項。其一般格式如下: Listname.Items.Remove(Item)612023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

(4)Items.Clear方法Items.Clear方法的功能是清除列表框中的所有列表項。其一般格式如下: Listname.Items.Clear()622023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

【例9-12】列表框控件的運用。(1)創建一個Windows窗體應用程序,在窗體上添加如圖9-22所示的控件。其中,ListBox控件名稱如圖所示,4個按鈕的名稱依次為btnRight、btnRightAll、btnLeftAll和btnLeft。(2)更改lstLeft控件的Items屬性,彈出如圖9-23所示的字符串集合編輯器。依次輸入星期日、星期一、星期二、星期三、星期四、星期五和星期六。單擊“確定”按鈕,得到如圖9-24所示的窗體。(3)編寫各個按鈕的代碼,功能為使得ListBox控件的選項在lstLeft和lstRight控件之間移動,并將記錄輸出到lstBottom列表框控件中。632023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

642023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

(4)完整的程序代碼如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;

namespaceUseListBox{publicpartialclassForm1:Form{

652023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

publicForm1(){InitializeComponent();}

662023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

privatevoidbtnRight_Click(objectsender,EventArgse){if(lstLeft.SelectedItems.Count==0){return;}else{lstRight.Items.Add(lstLeft.SelectedItem);lstBottom.Items.Add(lstLeft.SelectedItem.ToString()+"被移至右側");lstLeft.Items.Remove(lstLeft.SelectedItem);}}672023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

privatevoidbtnRightAll_Click(objectsender,EventArgse){foreach(objectiteminlstLeft.Items){lstRight.Items.Add(item);}lstBottom.Items.Add("左側列表項被全部移至右側");lstLeft.Items.Clear();}682023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

privatevoidbtnLeftAll_Click(objectsender,EventArgse){foreach(objectiteminlstRight.Items){lstLeft.Items.Add(item);}lstBottom.Items.Add("右側列表項被全部移至左側");lstRight.Items.Clear();}692023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

privatevoidbtnLeft_Click(objectsender,EventArgse){if(lstRight.SelectedItems.Count==0){return;}else{lstLeft.Items.Add(lstRight.SelectedItem);lstBottom.Items.Add(lstRight.SelectedItem.ToString()+"被移至左側");lstRight.Items.Remove(lstRight.SelectedItem);}}}}702023/7/24C#程序設計實用教程

9.4.6列表框

9.4.6列表框

運行程序,可以隨意將兩側列表框中的項移動,如圖9-25所示。712023/7/24C#程序設計實用教程

9.4.6列表框

9.4.7可選列表框控件

可選列表框(CheckedListBox)控件與ListBox控件類似,但是其列表表中選項的左側還可以顯示選擇框。722023/7/24C#程序設計實用教程

9.4.7可選列表框控件

9.4.8組合框控件

組合框(ComboBox)控件是一個文本框和一個列表框的組合。在列表框使用時,只能在給定的列表項中選擇,如果用戶想要選擇列表框中沒有給出的選項,則用列表框不能實現。與列表框不同的是,在組合框中向用戶提供了一個供選擇的列表框,若用戶選中列表框中某個列表項,該列表項的內容將自動裝入文本框中。當列表框中沒有所需的選項時,也允許在文本框中直接輸入特定的信息(但,組合框的DropDownStyle屬性設置為DropDownList時除外)。732023/7/24C#程序設計實用教程

9.4.8組合框控件

9.4.8組合框控件

1.常用屬性(1)DropDownStyle屬性該屬性用于設置組合框的樣式。有3種可選值:Simple:沒有下拉列表框,所以不能選擇,可以輸入,和TextBox控件相似。DropDown:具有下拉列表框,可以選擇,也可以直接輸入選擇項中不存在的文本。該值是默認值。DropDownList:具有下拉列表框,只能選擇已有可選項中的值,不能輸入其他的文本。742023/7/24C#程序設計實用教程

9.4.8組合框控件

9.4.8組合框控件

(2)MaxDropDownItems屬性該屬性用于設置下拉列表框中最多顯示列表項的個數。2.常用的事件組合框的常用事件不多,一般是使用Click事件,有時也使用SelectedIndexChanged事件和SelectedItemChanged事件。752023/7/24C#程序設計實用教程

9.4.8組合框控件

9.4.8組合框控件

【例9-13】組合框控件的運用。(1)創建一個Windows窗體應用程序,在窗體上添加如圖9-26所示的控件。其中,將兩個ComboBox控件分別命名為cboCountry和cboCity,“確定”按鈕命名為btnOk。76(2)更改兩個ComboBox控件的DropDownStyle屬性為DropDownList。為cboCountry有Items添加如下內容:中國美國英國2023/7/24C#程序設計實用教程

9.4.8組合框控件

9.4.8組合框控件

77(3)編寫程序代碼,實現如下的功能:當cboCountry中,選擇相應的國家,在cboCity中顯示該國家的部分城市。2023/7/24C#程序設計實用教程

9.4.8組合框控件

9.4.8組合框控件

(4)程序完整代碼如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;

namespaceUseComboBox{publicpartialclassForm1:Form{

782023/7/24C#程序設計實用教程

9.4.8組合框控件

9.4.8組合框控件

publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse)

{

cboCountry.SelectedIndex=0;

}

792023/7/24C#程序設計實用教程

9.4.8組合框控件

9.4.8組合框控件

privatevoidcboCountry_SelectedIndexChanged(objectsender,EventArgse){switch(cboCountry.SelectedIndex){case0:cboCity.Items.Clear();cboCity.Items.Add("北京");cboCity.Items.Add("上海");cboCity.Items.Add("天津");cboCity.SelectedIndex=0;break;802023/7/24C#程序設計實用教程

9.4.8組合框控件

9.4.8組合框控件

case1:cboCity.Items.Clear();cboCity.Items.Add("華盛頓");cboCity.Items.Add("紐約");cboCity.Items.Add("芝加哥");cboCity.SelectedIndex=0;break;case2:cboCity.Items.Clear();cboCity.Items.Add("倫敦")

溫馨提示

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

評論

0/150

提交評論