C語(yǔ)言界面設(shè)計(jì)經(jīng)典教程ppt課件
《C語(yǔ)言界面設(shè)計(jì)經(jīng)典教程ppt課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言界面設(shè)計(jì)經(jīng)典教程ppt課件(220頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第9章Windows應(yīng)用程序設(shè)計(jì)基礎(chǔ) 1 C 是一種可視化的程序設(shè)計(jì)語(yǔ)言 Windows窗體和控件是開發(fā)C 應(yīng)用程序的基礎(chǔ) 窗體和控件在C 程序設(shè)計(jì)中扮演著重要的角色 在C 中 每個(gè)Windows窗體和控件都是對(duì)象 都是類的實(shí)例 窗體是可視化程序設(shè)計(jì)的基礎(chǔ)界面 是其他對(duì)象的載體和容器 控件是添加到窗體對(duì)象上的對(duì)象 每個(gè)控件都有自己的屬性 方法和事件以完成特定的功能 Windows應(yīng)用程序設(shè)計(jì)還體現(xiàn)了另外一種思維 即對(duì)事件的處理 2 本章將介紹建立Windows應(yīng)用程序 使用WindowsForms常用控件 菜單和多文檔界面設(shè)計(jì)等 同時(shí)向大家展示用Windows窗體來(lái)編寫程序的特點(diǎn)以及技巧 3 9 1Windows應(yīng)用程序的結(jié)構(gòu) VS NET集成開發(fā)環(huán)境是基于 NETFramework構(gòu)建的 該框架提供了一個(gè)有條理的 面向?qū)ο蟮?可擴(kuò)展的類集 它使用戶得以開發(fā)豐富的Windows應(yīng)用程序 通過(guò)Windows 窗體設(shè)計(jì)器 進(jìn)行設(shè)計(jì)窗體 用戶就可以創(chuàng)建Windows應(yīng)用程序和客戶機(jī) 服務(wù)器應(yīng)用程序 用戶可對(duì)窗體設(shè)定某些特性并在其上添加控件 然后編寫代碼以增加控件和窗體的功能 4 9 1Windows應(yīng)用程序的結(jié)構(gòu) VS NET提供了很多工具可以使應(yīng)用程序的開發(fā)快捷 可靠 這些工具包括 Windows窗體可視化設(shè)計(jì)器 識(shí)別代碼編輯器 集成的編譯和調(diào)試 項(xiàng)目管理工具 5 9 1Windows應(yīng)用程序的結(jié)構(gòu) 典型的Windows應(yīng)用程序通常包括窗體 Forms 控件 Controls 和相應(yīng)的事件 Events 下面通過(guò)C 設(shè)計(jì)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器 要求能夠?qū)崿F(xiàn)基本的加 減 乘 除功能 并以這個(gè) 計(jì)算器 為例 來(lái)了解和掌握Windows應(yīng)用程序的一般開發(fā)過(guò)程 6 9 1 1計(jì)算器窗體 Windows窗體就是創(chuàng)立Windows應(yīng)用程序的框架 在VS NET中創(chuàng)建Windows應(yīng)用程序的第一步就是建立這個(gè)框架 操作步驟如下 1 運(yùn)行VS NET 在 起始頁(yè) 上單擊 新建項(xiàng)目 按鈕 打開 新建項(xiàng)目 對(duì)話框 如圖9 1所示 在 項(xiàng)目類型 列表框中指定項(xiàng)目的類型為 ViusalC 在 模板 列表框中選擇 Windows應(yīng)用程序 模板 在 名稱 文本框中輸入Calculator 在 位置 下拉列表中選定保存項(xiàng)目的位置 7 9 1 1計(jì)算器窗體 2 單擊 確定 按鈕后就進(jìn)入VS NET的主界面 如圖9 2所示 從圖9 2可以看出 當(dāng)選擇 Windows應(yīng)用程序 作為應(yīng)用程序的模板后 系統(tǒng)會(huì)自動(dòng)為用戶生成一個(gè)空白窗體 一般名為Form1 該窗體就是應(yīng)用程序運(yùn)行時(shí)顯示給用戶的操作界面 下一步就是向窗體中添加各種控件 8 9 1 2計(jì)算器控件 控件表示用戶和程序之間的圖形化連接 控件可以提供或處理數(shù)據(jù) 接受用戶輸入 對(duì)事件做出響應(yīng)或執(zhí)行連接用戶和應(yīng)用程序的其他功能 因?yàn)榭丶举|(zhì)上是具有圖形接口的組件 所以它能通過(guò)組件所提供的功能并與用戶交互 窗體中的控件有很多 工具箱 中的 Windows窗體 里包含了所有Windows的標(biāo)準(zhǔn)控件 用戶還可以根據(jù)需要自己定義控件 通過(guò)在 屬性 窗口中改變控件的屬性可以改變的外觀和特性 9 9 1 2計(jì)算器控件 本例中需要用到如下所列的控件 1 按鈕 16個(gè) 10個(gè)數(shù)字按鈕分別用于表示0 9 4個(gè)運(yùn)算符按鈕表示 1個(gè) 計(jì)算 按鈕用于實(shí)施計(jì)算操作 1個(gè) 清空 按鈕用于清除上次計(jì)算結(jié)果 2 標(biāo)簽 1個(gè) 用于標(biāo)示計(jì)算結(jié)果所在的文本框 3 文本框 1個(gè) 用于顯示計(jì)算結(jié)果 10 9 1 2計(jì)算器控件 具體添加控件步驟如下 首先向窗體中添加按鈕 Button 具體操作為 在工具箱中單擊Button 然后移動(dòng)鼠標(biāo)指針到窗體中的預(yù)定位置 按下左鍵拖動(dòng)鼠標(biāo) 劃出一個(gè)方框 釋放鼠標(biāo)左鍵后 一個(gè)按鈕就被添加到剛才方框的位置了 調(diào)整好大小和位置后單擊選中該按鈕 在 屬性 窗口中可以看到該控件名為Button1 將該按鈕的Text屬性設(shè)置為 1 繼續(xù)在窗體中添加其余15個(gè)按鈕 并分別設(shè)置好它們的屬性 11 9 1 2計(jì)算器控件 界面設(shè)計(jì)已經(jīng)完成了 接下來(lái)的事情就是為各個(gè)控件添加相應(yīng)的事件代碼了 按照同樣的方法在窗體中添加一個(gè)標(biāo)簽 Label 設(shè)置其Text屬性為 結(jié)果 再添加一個(gè)文本框 TextBox 并設(shè)置其Text屬性為空 最后 一個(gè)簡(jiǎn)單的計(jì)算器的界面就完成了 如圖9 3所示 12 9 1 3計(jì)算器事件 在C 中 基于Windows應(yīng)用程序設(shè)計(jì)方法是事件驅(qū)動(dòng)的 事件驅(qū)動(dòng)不是由程序的順序來(lái)控制的 而是由事件的發(fā)生來(lái)控制的 事件驅(qū)動(dòng)程序設(shè)計(jì)是圍繞著消息的產(chǎn)生與處理而展開的 消息就是關(guān)于發(fā)生的事件的信息 Windows程序員的工作就是對(duì)所開發(fā)的應(yīng)用程序所要發(fā)出或者接收的消息進(jìn)行排序和管理 事件驅(qū)動(dòng)程序方法提供了許多便利 對(duì)于那些需要大范圍用戶干預(yù)的應(yīng)用程序來(lái)說(shuō) 更是很有用處 13 9 1 3計(jì)算器事件 在 窗體設(shè)計(jì)器 中看到的是窗體及其中的控件 而要為控件添加事件處理程序就必須先切換到代碼編輯器狀態(tài) 切換到代碼編輯器有以下幾種方法 1 雙擊窗體或者某控件 2 在解決方案資源管理器中右鍵單擊Form1 cs 從快捷菜單中選擇 查看代碼 命令 如果選擇 視圖設(shè)計(jì)器 則可以回到 窗體設(shè)計(jì)器 中 3 當(dāng)?shù)谝淮吻袚Q到代碼編輯器之后 在窗體標(biāo)題 Form1 cs 設(shè)計(jì) 的左邊會(huì)自動(dòng)出現(xiàn)一個(gè)新的標(biāo)題 Form1 cs 單擊該標(biāo)題就可以切換到代碼編輯器 反之 如果單擊 Form1 cs 設(shè)計(jì) 則會(huì)切換到 窗體設(shè)計(jì)器 14 9 1 3計(jì)算器事件 下面分析一下計(jì)算器中各個(gè)控件到底應(yīng)該添加什么樣的代碼 對(duì)于計(jì)算器來(lái)說(shuō) 當(dāng)單擊某個(gè)數(shù)字鍵后 結(jié)果顯示區(qū)內(nèi)應(yīng)顯示該鍵上的數(shù)字 因此 可以雙擊按鈕 1 切換到代碼編輯器 此時(shí)光標(biāo)就停留在該按鈕所對(duì)應(yīng)的代碼處 輸入下列代碼 privatevoidbtn1 Click objectsender EventArgse Buttonbtn Button sender textBox1 Text btn Text 15 9 1 3計(jì)算器事件 繼續(xù)給其他數(shù)字按鈕添加同樣的代碼 然后給4個(gè)運(yùn)算符按鈕添加下列代碼 privatevoidbtnAdd Click objectsender EventArgse Buttonbtn Button sender textBox1 Text textBox1 Text btn Text 空格用于分隔數(shù)字各運(yùn)算符 16 9 1 3計(jì)算器事件 privatevoidbtnSub Click objectsender EventArgse Buttonbtn Button sender textBox1 Text textBox1 Text btn Text 空格用于分隔數(shù)字各運(yùn)算符 privatevoidbtnMul Click objectsender EventArgse Buttonbtn Button sender textBox1 Text textBox1 Text btn Text 空格用于分隔數(shù)字各運(yùn)算符 17 9 1 3計(jì)算器事件 privatevoidbtnDiv Click objectsender EventArgse Buttonbtn Button sender textBox1 Text textBox1 Text btn Text 空格用于分隔數(shù)字各運(yùn)算符 接下來(lái)給 清空 按鈕添加如下代碼 privatevoidbtnClear Click objectsender EventArgse textBox1 Text 18 9 1 3計(jì)算器事件 最后給 計(jì)算 按鈕添加下列代碼 privatevoidbtnCalculate Click objectsender EventArgse Singler 用于保存計(jì)算結(jié)果stringt textBox1 Text t用于保存文本框中的算術(shù)表達(dá)式intspace t IndexOf 用于搜索空格位置strings1 t Substring 0 space s1用于保存第一個(gè)運(yùn)算數(shù)charop Convert ToChar t Substring space 1 1 op用于保存運(yùn)算符strings2 t Substring space 3 s2用于保存第二個(gè)運(yùn)算數(shù)Singlearg1 Convert ToSingle s1 將運(yùn)算數(shù)從string轉(zhuǎn)換為SingleSinglearg2 Convert ToSingle s2 19 9 1 3計(jì)算器事件 switch op case r arg1 arg2 break case r arg1 arg2 break case r arg1 arg2 break 20 9 1 3計(jì)算器事件 case if arg2 0 thrownewApplicationException else r arg1 arg2 break break default thrownewApplicationException 21 9 1 3計(jì)算器事件 將計(jì)算結(jié)果顯示在文本框中textBox1 Text r ToString 現(xiàn)在 所有的工作都完成了 在 調(diào)試 菜單中選擇 啟動(dòng) 命令或者 開始執(zhí)行 不調(diào)試 命令運(yùn)行該應(yīng)用程序 計(jì)算器可以工作了 22 9 2Windows窗體 通過(guò) 計(jì)算器 這個(gè)例子 已初步了解了Windows應(yīng)用程序的結(jié)構(gòu) 下面具體介紹Windows應(yīng)用程序的設(shè)計(jì)和開發(fā) 一個(gè)應(yīng)用程序除了需要實(shí)現(xiàn)應(yīng)有的功能外 還必須具有良好的用戶界面 在C 中 Windows應(yīng)用程序的界面是以窗體 Form 為基礎(chǔ)的 窗體是Windows應(yīng)用程序的基本單位 用來(lái)向用戶展示信息和接受用戶的輸入 窗體可以是標(biāo)準(zhǔn)窗口 多文檔界面 MDI 窗口 對(duì)話框的顯示界面 23 9 2Windows窗體 窗體就好像一個(gè)容器 其他界面元素都可以放置在窗體中 C 中以類Form來(lái)封裝窗體 一般來(lái)說(shuō) 用戶設(shè)計(jì)的窗體都是類Form的派生類 用戶窗體中添加其他界面元素的操作實(shí)際上就是向派生類中添加私有成員 當(dāng)新建一個(gè)Windows應(yīng)用程序項(xiàng)目時(shí) C 就會(huì)自動(dòng)創(chuàng)建一個(gè)默認(rèn)名為Form1的Windows窗體 24 9 2Windows窗體 Windows窗體由以下4部分組成 標(biāo)題欄控制按鈕邊界窗口區(qū) 25 9 2 1Windows窗體的基本屬性 Windows窗體的屬性可以決定窗體的外觀和行為 其中常用的屬性有 名稱 Name 屬性 標(biāo)題 Text 屬性 控制菜單屬性和影響窗體外觀的屬性 1 窗體的名稱屬性 Name Name用于設(shè)置窗體的名稱 該屬性值作為窗體的標(biāo)志 用于在程序中引用窗體 在初始新建一個(gè)Windows應(yīng)用程序項(xiàng)目時(shí) 自動(dòng)創(chuàng)建一個(gè)窗體 該窗體的名稱被自動(dòng)命名為Form1 添加第2個(gè)窗體時(shí) 其名稱被自動(dòng)命名為Form2 依次類推 通常而言 在設(shè)計(jì)Windows窗體時(shí) 可給其Name屬性設(shè)置一個(gè)有實(shí)際含義的名字 26 9 2 1Windows窗體的基本屬性 2 窗體的標(biāo)題屬性 Text Text屬性用于設(shè)置窗體標(biāo)題欄顯示的內(nèi)容 它的值是一個(gè)字符串 通常 標(biāo)題欄顯示的內(nèi)容應(yīng)能概括地說(shuō)明窗體的內(nèi)容或作用 例如 對(duì)于一個(gè)登錄窗體 其欄題欄設(shè)置為 歡迎登錄 27 9 2 1Windows窗體的基本屬性 3 窗體的控制菜單屬性在C 應(yīng)用程序中的Windows窗體 一般都顯示控制菜單 以方便用戶的操作 1 ControlBox屬性 該屬性用來(lái)設(shè)置窗體上是否有控制菜單 其默認(rèn)值True 窗體上顯示控制菜單 若將該屬性設(shè)置為False 則窗體上不顯示控制菜單 如圖9 4所示 28 9 2 1Windows窗體的基本屬性 2 MaximizeBox屬性 用于設(shè)置窗體上的最大化按鈕 其默認(rèn)值True 窗體上顯示最大化按鈕 若將該屬性設(shè)置為False 則窗體上不顯示最大化按鈕 3 MinimizeBox屬性 用于設(shè)置窗體上的最小化按鈕 其默認(rèn)值True 窗體上顯示最小化按鈕 若將該屬性設(shè)置為False 則窗體上不顯示最小化按鈕 29 9 2 1Windows窗體的基本屬性 4 設(shè)置窗體外觀的屬性 1 FormBorderStyle屬性 用于控制窗體邊界的類型 它有7個(gè)可選值 可選值說(shuō)明如表9 1所示 30 9 2 1Windows窗體的基本屬性 2 Size屬性 用來(lái)設(shè)置窗體的大小 3 Location屬性 設(shè)置窗體在屏幕上的位置 即設(shè)置窗體左上角的坐標(biāo)值 4 BackColor屬性 用于設(shè)置窗體的背景顏色 可以從彈出的調(diào)色板中選擇 31 9 2 1Windows窗體的基本屬性 5 BackgroundImage屬性 用于設(shè)置窗體的背景圖像 6 Opacity屬性 該屬性用來(lái)設(shè)置窗體的透明度 5 設(shè)置窗體可見(jiàn)性的屬性窗體的可見(jiàn)性由Visible屬性來(lái)控制 32 9 2 2創(chuàng)建窗體 通常 在開發(fā)項(xiàng)目時(shí) 一個(gè)窗體往往不能滿足 通常需要用到多個(gè)窗體 C 提供了多窗體處理能力 在一個(gè)項(xiàng)目中可創(chuàng)建多個(gè)窗體 添加新窗體的方式如下 1 選擇項(xiàng)目菜單下的 添加Windows窗體 命令 打開 添加新項(xiàng) 對(duì)話框 如圖9 5所示 33 9 2 2創(chuàng)建窗體 2 在 添加新項(xiàng) 對(duì)話框的模板框內(nèi) 選擇 Windows窗體 模板 然后 單擊 打開 按鈕 就添加一個(gè)新的Windows窗體 完成添加窗體后 在解決方案資源管理器窗口中雙擊對(duì)應(yīng)的窗體 則在Windows窗體設(shè)計(jì)器中 可顯示該窗體 34 9 2 3設(shè)置啟動(dòng)窗體屬性 當(dāng)在應(yīng)用程序中添加了多個(gè)窗體后 默認(rèn)情況下 應(yīng)用程序中的第一個(gè)窗體被自動(dòng)指定為啟動(dòng)窗體 在應(yīng)用程序開始運(yùn)行時(shí) 此窗體就會(huì)首先顯示出來(lái) 如果想實(shí)現(xiàn)在應(yīng)用程序啟動(dòng)時(shí) 顯示別的窗體 那么就要設(shè)置啟動(dòng)窗體 如何實(shí)現(xiàn)設(shè)置啟動(dòng)窗體 請(qǐng)看例9 1 例9 1 C 設(shè)置啟動(dòng)窗體 步驟如下 1 在一個(gè)項(xiàng)目中 添加兩個(gè)窗體 35 9 2 3設(shè)置啟動(dòng)窗體屬性 2 在解決方案中 有一個(gè)Program cs文件 雙擊此文件 此時(shí)該文件的代碼如下所示 staticclassProgram staticvoidMain Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application Run newForm1 36 9 2 3設(shè)置啟動(dòng)窗體屬性 3 要實(shí)現(xiàn)先啟動(dòng)Form2 只需在Program cs文件中修改此行 Application Run newForm1 代碼為 Application Run newForm2 即可 4 運(yùn)行程序 先啟動(dòng)的窗體為Form2 37 9 2 4窗體的顯示與隱藏 1 窗體的顯示如果要在一個(gè)窗體中通過(guò)按鈕打開另一個(gè)窗體 就必須通過(guò)調(diào)用Show 方法顯示窗體 語(yǔ)法如下 publicvoidShow 例9 2 在Form1窗體中添加一個(gè)Button按鈕 在按鈕的Click事件中調(diào)用Show 打開Form2窗體 代碼如下 privatevoidbutton1 Click objectsender EventArgse Form2frm2 newForm2 實(shí)例化Form2frm2 Show 調(diào)用Show方法顯示Form2窗體 38 9 2 4窗體的顯示與隱藏 2 窗體的隱藏通過(guò)調(diào)用Hide 方法隱藏窗體 語(yǔ)法如下 publicvoidHide 例9 3 通過(guò)登錄窗體登錄系統(tǒng) 輸入用戶名和密碼后 單擊 登錄 按鈕 隱藏登錄窗體 顯示主窗體 關(guān)鍵代碼如下 this Hide 調(diào)用Hide方法隱藏當(dāng)前窗體frmMainfrm newfrmMain 實(shí)例化frmMainfrm Show 調(diào)用Show方法顯示frmMain窗體 39 9 2 5窗體的事件 Windows是事件驅(qū)動(dòng)的操作系統(tǒng) 對(duì)Form類的任何交互都是基于事件來(lái)實(shí)現(xiàn)的 Form類提供了大量的事件用于響應(yīng)對(duì)窗體執(zhí)行的各種操作 窗體設(shè)計(jì)人員往住關(guān)心窗體的加載和關(guān)閉 通常在加載時(shí)進(jìn)行界面和數(shù)據(jù)的初始化 在關(guān)閉前進(jìn)行資源的釋放等清理操作 也可以取消關(guān)閉操作 下面詳細(xì)介紹窗體的Click Load和FormClosing事件 40 9 2 5窗體的事件 1 Click 單擊 事件當(dāng)單擊窗體時(shí) 將會(huì)觸發(fā)窗體的Click事件 語(yǔ)法如下 publiceventEventHandlerClick 例9 4 在窗體的Click事件中編寫代碼 實(shí)現(xiàn)當(dāng)單擊窗體時(shí) 彈出提示框 代碼如下 privatevoidForm1 Click objectsender EventArgse MessageBox Show 已經(jīng)單擊了窗體 彈出提示框 41 9 2 5窗體的事件 程序的運(yùn)行如圖9 6所示 42 9 2 5窗體的事件 2 Load 加載 事件當(dāng)?shù)谝淮沃苯踊蜷g接調(diào)用Form Show方法來(lái)顯示窗體時(shí) 窗體就會(huì)進(jìn)行且只進(jìn)行一次加載 并且在必需的加載操作完成后會(huì)引發(fā)Load事件 通常 在Load事件響應(yīng)函數(shù)中執(zhí)行一些初始化操作 語(yǔ)法如下 publiceventEventHandlerLoad 43 9 2 5窗體的事件 例9 5 在下述程序 在窗體的Load事件中對(duì)窗體的大小 標(biāo)題 顏色等屬性進(jìn)行了設(shè)置 privatevoidForm1 Load objectsender EventArgse this Width 1000 this Height 500 this ForeColor Color Cyan this BackColor Color Red this Text Welcomeyou 44 9 2 5窗體的事件 程序的運(yùn)行如圖9 7所示 45 9 2 5窗體的事件 3 FormClosing 關(guān)閉 事件Form類的FormClosing事件是在窗體關(guān)閉時(shí)引發(fā)的事件 直接或間接調(diào)用Form Close 方法都會(huì)引發(fā)事件 在FormClosing事件中 通常進(jìn)行關(guān)閉前的確認(rèn)和資源釋放操作 語(yǔ)法如下 publiceventFormClosingEventHandlerFormClosing 例9 6 創(chuàng)建一個(gè)Windows應(yīng)用程序 實(shí)現(xiàn)當(dāng)關(guān)閉窗體之前 彈出提示框 詢問(wèn)是否關(guān)閉當(dāng)前窗體 單擊 是 按鈕 關(guān)閉窗體 代碼如下 46 9 2 5窗體的事件 privatevoidForm1 FormClosing objectsender FormClosingEventArgse DialogResultdr MessageBox Show 是否關(guān)閉窗體 提示 MessageBoxButtons YesNo MessageBoxIcon Warning if dr DialogResult Yes 使用if語(yǔ)句判定是否單擊 是 按鈕 e Cancel false 如果單擊 是 按鈕則關(guān)閉窗體 else e Cancel true 否則 不執(zhí)行操作 47 9 2 5窗體的事件 程序的運(yùn)行如圖9 8所示 48 9 3窗體控件概述 控件是包含在窗體上的對(duì)象 是構(gòu)成用戶界面的基本元素 也是C 可視化編程的重要工具 使用控件可使程序的設(shè)計(jì)簡(jiǎn)化避免大量重復(fù)性工作 簡(jiǎn)化設(shè)計(jì)過(guò)程 有效地提高設(shè)計(jì)效率 對(duì)于一個(gè)程序開發(fā)人員而言 必須掌握每類控件的功能 用途 并掌握其常用的屬性 事件和方法 49 9 3窗體控件概述 在VS2005中 工具箱中包含了建立應(yīng)用程序的各種控件 工具箱分為Windows窗體 公共控件 容器 菜單和工具欄 數(shù)據(jù) 組件 打印 對(duì)話框等部分 常用的Windows窗體控件放在 Windows窗體 選項(xiàng)卡下 工具箱中有數(shù)十個(gè)常用的Windows窗體控件 它們以圖標(biāo)的方式顯示在工具箱中 其名稱顯示于圖標(biāo)的右側(cè) 50 9 3窗體控件概述 在介紹具體控件之前 首先在此探討一下各個(gè)控件共有的屬性 事件和方法 在C 中 所有的窗體控件 比如標(biāo)簽控件 文本框控件 按鈕控件等全部都是繼承于 System Windows Forms Control 作為各種窗體控件的基類 Control類實(shí)現(xiàn)了所有窗體交互控件的基本功能 Control類的屬性 方法和事件是所有窗體控件所公有的 而且其中很多是在編程中經(jīng)常會(huì)遇到的 51 9 3窗體控件概述 1 Control類的屬性Control類的屬性描述了一個(gè)窗體控件的所有公共屬性 可以在屬性 Properties 窗口中查看或修改窗體控件的屬性 常用的屬性如下 Name屬性每一個(gè)控件都有一個(gè)Name 名字 屬性 在應(yīng)用程序中 可通過(guò)此屬性來(lái)引用這個(gè)控件 C 會(huì)給每個(gè)新添加的控件指定一個(gè)默認(rèn)名 在應(yīng)用程序設(shè)計(jì)中 可根據(jù)需要將控件的默認(rèn)名字改成更有實(shí)際代表意義的名字 52 9 3窗體控件概述 Text屬性在C 中 每一個(gè)控件對(duì)象都有Text屬性 Text屬性在很多控件中都有重要的意義和作用 例如 在標(biāo)簽控件中顯示的文字 在文本框中用戶輸入的文字 組合框和窗體中的標(biāo)題等都是用控件的Text進(jìn)行設(shè)定的 對(duì)于Text屬性的設(shè)置過(guò)程及設(shè)置結(jié)果如圖9 9 9 10所示 53 9 3窗體控件概述 Anchor屬性Anchor的意思是 錨 那么Anchor屬性是用來(lái)確定此控件與其容器控件的固定關(guān)系的 在此 所謂容器控件是指什么呢 顧名思義 容器控件就是像一般的容器一樣可以存放別的控件的控件 例如 窗體控件中會(huì)包含很多的控件 像標(biāo)簽控件 文本框等 這時(shí) 稱包含控件的控件為容器控件或父控件 而里面的控件為子控件 顯然 這必然涉及到一個(gè)問(wèn)題 即子控件與父控件的位置關(guān)系問(wèn)題 即當(dāng)父控件的位置 大小變化時(shí) 子控件按照什么樣的原則改變其位置 大小 Anchor屬性就用于設(shè)置此原則 54 9 3窗體控件概述 對(duì)于Anchor屬性 可以設(shè)定Top Bottom Right Left中任意的幾種 設(shè)置的方法非常直觀 如圖9 11所示 55 9 3窗體控件概述 圖9 11中選中變黑的方位即為設(shè)定的控件方位 圖中所示的方位為Top Left Bottom 此時(shí) 如果容器控件變化 子控件將保證其上邊緣與容器上邊的距離 左邊緣與容器左邊的距離 底邊與容器底邊的距離 其運(yùn)行效果如圖9 12所示 56 9 3窗體控件概述 Dock屬性Dock屬性規(guī)定了子控件與父控件的邊緣依賴關(guān)系 Dock的效果 如圖9 13所示 Dock的值有6種 分別是Top Bottom Left Right Fill 最后還有默認(rèn)值None 一旦Dock值被設(shè)定 子控件就會(huì)發(fā)生變化與父控件選定的邊緣相融在一起 57 9 3窗體控件概述 2 Control類的方法可以調(diào)用Control類的方法來(lái)獲得控件的一些信息 或者設(shè)置控件的屬性值及行為狀態(tài) 例如 Focus方法可設(shè)置此控件獲得的焦點(diǎn) Refresh方法可重畫控件 Select方法可激活控件 Show方法可顯示控件等 58 9 3窗體控件概述 3 Control類的事件在C 中 當(dāng)用戶進(jìn)行某一項(xiàng)操作時(shí) 會(huì)引發(fā)某個(gè)事件的發(fā)生 此時(shí)就會(huì)調(diào)用事件處理程序代碼 實(shí)現(xiàn)對(duì)程序的控制 事件驅(qū)動(dòng)實(shí)現(xiàn)是基于窗體的消息傳遞和消息循環(huán)機(jī)制的 在C 中 所有的機(jī)制都被封裝在控件之中 極大方便了編寫事件的驅(qū)動(dòng)程序 如果希望能夠更加深入地操作 或定義自己的事件 就需要聯(lián)合使用委托 Delegate 和事件 Event 可以靈活地添加 修改事件的響應(yīng) 并自定義事件的處理方法 例如 Control類的可響應(yīng)的事件有 單擊時(shí)發(fā)生的Click事件 雙擊時(shí)發(fā)生的DoubleClick事件 取得焦點(diǎn)時(shí)發(fā)生的GetFocus事件 鼠標(biāo)移動(dòng)時(shí)發(fā)生的MouseMove事件等 59 9 4常用控件 窗體是由一個(gè)個(gè)控件構(gòu)成的 因此熟悉控件是進(jìn)行合理 有效的程序開發(fā)的重要前提 本節(jié)內(nèi)容將針對(duì)Windows窗體應(yīng)用程序中常見(jiàn)的控件進(jìn)行詳細(xì)介紹 60 9 4 1按鈕控件 按鈕 Button 是用戶與應(yīng)用程序交互的最常用的工具 它用于接收用戶的操作信息 去執(zhí)行預(yù)先規(guī)定的命令 觸發(fā)相應(yīng)的事件過(guò)程 以實(shí)現(xiàn)指定的功能 1 常用屬性 1 Text屬性該屬性用于設(shè)定按鈕上顯示的文本 該屬性也可為按鈕創(chuàng)建快捷方式 其方法是在作為快捷鍵的字母前加一個(gè) 字符 則在程序運(yùn)行時(shí) 命令按鈕上該字母帶有下劃線 該字母就成為快捷鍵 例如 某個(gè)按鈕的Text屬性設(shè)置為 Display 程序運(yùn)行時(shí) 就會(huì)顯示為 Display 61 9 4 1按鈕控件 2 FlatStyle屬性該屬性指定了按鈕的外觀風(fēng)格 它有4個(gè)可選值 分別是 Flat Popup System Standard 該屬性的默認(rèn)值為Standard 3 Image屬性用于設(shè)定在按鈕上顯示的圖形 4 ImageAlign屬性當(dāng)圖片顯示在命令按鈕上時(shí) 可以通過(guò)ImageAlign屬性調(diào)節(jié)其在按鈕上的位置 5 Enable屬性用于設(shè)定控件是否可用 不可用 則用灰色表示 6 Visible屬性用于設(shè)定控件是否可見(jiàn) 不可見(jiàn) 則隱藏 注意 上述的屬性中 前4項(xiàng)為外觀屬性 而后2項(xiàng)為行為屬性 62 9 4 1按鈕控件 2 響應(yīng)的事件如果按鈕具有焦點(diǎn) 就可以使用鼠標(biāo)左鍵 Enter鍵或空格鍵觸發(fā)該按鈕的Click事件 當(dāng)使用ShowDialog方法顯示窗體時(shí) 可以使用按鈕的DialogResult屬性指定ShowDialog的返回值 例9 7 按鈕控件的運(yùn)用 1 為窗體Form1添加一個(gè)計(jì)數(shù)器nCounter 并添加3個(gè)按鈕控件 分別完成遞增計(jì)數(shù)器 遞減計(jì)數(shù)器 通過(guò)消息框提示計(jì)數(shù)器的值的功能 并添加1個(gè)Label控件來(lái)顯示每次運(yùn)算后的計(jì)數(shù)器值 完成的窗體界面如圖9 14所示 63 9 4 1按鈕控件 2 設(shè)置窗體和各控件的屬性 如表9 2所示 64 9 4 1按鈕控件 3 切換到代碼窗口 創(chuàng)建事件過(guò)程 privateintnCounter 第一次加載時(shí) 進(jìn)行計(jì)數(shù)器和lblResult的初始化privatevoidForm1 Load objectsender EventArgse this nCounter 50 this ShowCounter 進(jìn)行遞增操作 并提示新值privatevoidbtnInc Click objectsender EventArgse this nCounter this ShowCounter 65 9 4 1按鈕控件 進(jìn)行遞減操作 并提示新值privatevoidbtnDes Click objectsender EventArgse this nCounter this ShowCounter 通過(guò)MessageBox提示當(dāng)前的值privatevoidbtnMsg Click objectsender EventArgse stringstrMsg 當(dāng)前計(jì)數(shù)器 this nCounter ToString D8 MessageBox Show strMsg 提示 66 9 4 1按鈕控件 顯示計(jì)數(shù)器值到Label控件lblResultprivatevoidShowCounter stringstrMsg this nCounter ToString D8 this lblResult Text strMsg 67 9 4 1按鈕控件 程序運(yùn)行結(jié)果如圖9 15所示 68 9 4 2標(biāo)簽控件 標(biāo)簽 Label 主要用來(lái)顯示文本 通常用標(biāo)簽來(lái)為其他控件顯示說(shuō)明信息 窗體的提示信息 或者用來(lái)顯示處理結(jié)果等信息 但是 標(biāo)簽顯示的文本不能被直接編輯 除了顯示文本外 標(biāo)簽還可使用Image屬性顯示圖像 或使用ImageIndex和ImageList屬性組合顯示圖像 69 9 4 2標(biāo)簽控件 1 常用屬性 1 Text屬性該屬性用于設(shè)定標(biāo)簽顯示的文本 可通過(guò)TextAlign屬性設(shè)置文本的對(duì)齊方式 2 BorderStyle屬性該屬性用于設(shè)定標(biāo)簽的邊框形式 共有3個(gè)設(shè)定值 分別是None FixedSingle Fixed3D 該屬性的默認(rèn)值為None 3 BackColor屬性用于設(shè)定標(biāo)簽的背景色 4 ForeColor屬性用于設(shè)定標(biāo)簽中文本的顏色 5 Font屬性用于設(shè)定標(biāo)簽中文本的字體 大小 粗體 斜體 刪除線等 70 9 4 2標(biāo)簽控件 6 Image屬性用于設(shè)定標(biāo)簽的背景圖片 可通過(guò)ImageAlign屬性設(shè)置圖片的對(duì)齊方式 7 Enable屬性用于設(shè)定控件是否可用 不可用 則用灰色表示 8 Visible屬性用于設(shè)定控件是否可見(jiàn) 不可見(jiàn) 則隱藏 9 AutoSize屬性用于設(shè)定控件是否根據(jù)文本自動(dòng)調(diào)整 設(shè)置為true表示自動(dòng)調(diào)整 注意 上述的屬性中 前6項(xiàng)為外觀屬性 而后3項(xiàng)為行為屬性 71 9 4 2標(biāo)簽控件 2 響應(yīng)的事件標(biāo)簽控件常用的事件有 Click事件和DoubleClick事件 72 9 4 2標(biāo)簽控件 例9 3 標(biāo)簽控件的運(yùn)用 對(duì)窗體上的3個(gè)標(biāo)簽控件的參數(shù)進(jìn)行設(shè)置 用來(lái)顯示文本 程序代碼如下 privatevoidForm1 Load objectsender EventArgse label1參數(shù)設(shè)置 默認(rèn)字體為宋體9號(hào) 前景色為黑色this label1 AutoSize true this label1 BackColor System Drawing Color White this label1 Text 宋體9號(hào) 白底 黑字 73 9 4 2標(biāo)簽控件 label2參數(shù)設(shè)置 默認(rèn)字體為宋體9號(hào) 前景色為黑色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號(hào) 黑底 白字 74 9 4 2標(biāo)簽控件 label3參數(shù)設(shè)置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號(hào) 藍(lán)底 紅字 75 9 4 2標(biāo)簽控件 程序運(yùn)行結(jié)果如圖9 16所示 76 9 4 3文本框控件 在C 中 文本框 TextBox 是最常用的和最簡(jiǎn)單的文本顯示和輸入控件 文本框有兩種用途 一是可以用來(lái)輸出或顯示文本信息 二是可以接受從鍵盤輸入的信息 1 常用屬性 1 Text屬性該屬性用于設(shè)定文本框顯示的文本 可通過(guò)TextAlign屬性設(shè)置文本的對(duì)齊方式 2 BackColor屬性用于設(shè)定文本框的背景色 3 ForeColor屬性用于設(shè)定文本框中文本的顏色 77 9 4 3文本框控件 4 Font屬性用于設(shè)定文本框中文本的字體 大小 粗體 斜體 刪除線等 5 PasswordChar屬性文本框控件以密碼輸入方式使用 輸入字母用該屬性指定字符屏蔽 6 Enable屬性用于設(shè)定文本框控件是否可用 不可用 則用灰色表示 7 Visible屬性用于設(shè)定文本框控件是否可見(jiàn) 不可見(jiàn) 則隱藏 8 ReadOnly屬性用于設(shè)定文本框控件是否只讀 9 MultiLine屬性用于設(shè)定文本框控件是否包多行文本 注意 上述的屬性中 前5項(xiàng)為外觀屬性 而后4項(xiàng)為行為屬性 78 9 4 3文本框控件 2 常用的方法 1 Clear方法用于清除文本框中已有的文本 2 AppendText方法用于文本框最后追加文本 79 9 4 3文本框控件 3 常用的事件在文本框控件所能響應(yīng)的事件中 TextChanged Enter和Leave是常用的事件 1 TextChanged事件當(dāng)文本框的文本內(nèi)容發(fā)生變化時(shí) 觸發(fā)該事件 當(dāng)向文本框輸入信息時(shí) 每輸入一個(gè)字符 就會(huì)引發(fā)一次TextChanged事件 2 Enter事件當(dāng)文本框獲得焦點(diǎn)時(shí) 就會(huì)引發(fā)的事件 3 Leave事件當(dāng)文本框失去焦點(diǎn)時(shí) 就會(huì)引發(fā)的事件 80 9 4 3文本框控件 例9 9 文本框控件的運(yùn)用 實(shí)現(xiàn)步驟如下 1 為窗體Form1添加2個(gè)TextBox控件 tbInput和tbHint 前者可編輯單行文本 用來(lái)獲取用戶輸入 后者用于顯示數(shù)據(jù) 應(yīng)設(shè)置為只讀多行文本 同時(shí) 再添加1個(gè)Label控件lblCopy 用來(lái)顯示輸入文本框中數(shù)據(jù) 81 9 4 3文本框控件 2 在此例中 通過(guò)程序代碼設(shè)置相應(yīng)的控件的屬性 主要程序代碼如下 privatevoidForm1 Load objectsender EventArgse 設(shè)置2個(gè)文本框的屬性this tbInput ForeColor Color Blue this tbHint BackColor Color White this tbHint ForeColor Color Green this tbHint ReadOnly true 82 9 4 3文本框控件 privatevoidtbInput Enter objectsender EventArgse 光標(biāo)進(jìn)入清除原有文本this tbInput Clear privatevoidtbInput Leave objectsender EventArgse 焦點(diǎn)退出 將文本添加到tbHint新的一行this tbHint AppendText this tbInput Text Environment NewLine 83 9 4 3文本框控件 privatevoidtbInput TextChanged objectsender EventArgse 將當(dāng)前tbInput中文本內(nèi)容同步顯示到lblCopy中this lblCopy Text this tbInput Text 注意 在tbInput Leave事件中將編輯好的文本通過(guò)方法TextBox AppendText 追加tbHint中 在tbInput TextChanged事件中將tbInput中最新的文本同步顯示到lbCopy控件上 程序運(yùn)行結(jié)果如圖9 17所示 84 9 4 4單選按鈕控件 單選按鈕 RadioButton 控件為用戶提供由兩個(gè)或多個(gè)互斥選項(xiàng)組成的選項(xiàng)集 當(dāng)用戶選中某單選項(xiàng)按鈕時(shí) 同一組中的其他單選項(xiàng)按鈕不能同時(shí)選定 該控件以圓圈內(nèi)加點(diǎn)的方式表示選中 單選按鈕用來(lái)讓用戶在一組相關(guān)的選項(xiàng)中選擇一項(xiàng) 因此單選按鈕控件總是成組出現(xiàn) 直接添加到一個(gè)窗體中的所有單選按鈕將形成一個(gè)組 若要添加不同的組 必須將它們放到面板或分組框中 將若干RadionButton控件放在一個(gè)GroupBox控件內(nèi)組成一組時(shí) 當(dāng)這一組中的某個(gè)單選按鈕控件被選中時(shí) 該組中的其他單選控件將自動(dòng)處于不選中狀態(tài) 85 9 4 4單選按鈕控件 1 常用屬性 1 Text屬性該屬性用于設(shè)置單選按鈕旁邊的說(shuō)明文字 以說(shuō)明單選按鈕的用途 2 Check屬性表示單選按鈕是否被選中 選中則Checked值為True 否則為False 2 響應(yīng)的事件單選按鈕響應(yīng)的事件主要是Click事件和CheckedChanged事件 當(dāng)鼠標(biāo)單擊單選按鈕時(shí) 觸發(fā)Click事件 并且改變Checked屬性值 Checked屬性值的改變 同時(shí)將觸發(fā)CheckedChanged事件 86 9 4 4單選按鈕控件 例9 10 單選按鈕控件的運(yùn)用 通過(guò)選擇不同的單選按鈕 實(shí)現(xiàn)在文本框中顯示不同水果的價(jià)格 實(shí)現(xiàn)步驟如下 1 創(chuàng)建如圖9 18所示的窗體 87 9 4 4單選按鈕控件 2 設(shè)置窗體和各控件的屬性 如表9 3所示 88 9 4 4單選按鈕控件 3 打開代碼窗口 編寫事件過(guò)程 privatevoidrdoApple CheckedChanged objectsender EventArgse txtPrice Text 10 0 privatevoidrdoBanana CheckedChanged objectsender EventArgse txtPrice Text 8 5 89 9 4 4單選按鈕控件 privatevoidrdoPineapple CheckedChanged objectsender EventArgse txtPrice Text 12 5 90 9 4 5復(fù)選框控件 復(fù)選按鈕 CheckBox 控件 它與單選按鈕一樣 也給用戶提供一組選項(xiàng)供其選擇 但它與單選按鈕有所不同 每個(gè)復(fù)選框都是一個(gè)單獨(dú)的選項(xiàng) 用戶既可以選擇它 也可以不選擇它 不存在互斥的問(wèn)題 可以同時(shí)選擇多項(xiàng) 1 常用屬性 1 Text屬性 該屬性用于設(shè)置復(fù)選框旁邊的說(shuō)明文字 以說(shuō)明復(fù)選框的用途 2 Check屬性 表示復(fù)選框是否被選擇 True表示復(fù)選框被選擇 False表示復(fù)選框未被選擇 91 9 4 5復(fù)選框控件 3 CheckState屬性 反映該復(fù)選框的狀態(tài) 有3個(gè)可選值 Checked 表示復(fù)選框當(dāng)前被選中 Unchecked 表示復(fù)選框當(dāng)前未被選中 Indeterminate 表示復(fù)選框當(dāng)前狀態(tài)未定 此時(shí)該復(fù)選框呈灰色 2 響應(yīng)的事件復(fù)選框響應(yīng)的事件主要是Click事件 CheckedChanged事件和CheckStateChanged事件 當(dāng)鼠標(biāo)單擊復(fù)選框時(shí) 觸發(fā)Click事件 并且改變Checked屬性值和CheckState屬性值 Checked屬性值的改變 同時(shí)將觸發(fā)CheckedChanged事件 CheckState屬性值的改變 同時(shí)將觸發(fā)CheckStateChanged事件 92 9 4 5復(fù)選框控件 例9 11 復(fù)選框控件的運(yùn)用 通過(guò)選擇不同的復(fù)選框 實(shí)現(xiàn)輸出選中的業(yè)余愛(ài)好 實(shí)現(xiàn)步驟如下 1 創(chuàng)建一個(gè)Windows窗體應(yīng)用的程序 添加如圖9 19所示的控件 2 編寫 確定 按鈕btnOk和 退出 btnExit的代碼 其中 確定 按鈕功能為顯示一個(gè)對(duì)話框 輸出用戶用戶所填內(nèi)容 退出 按鈕功能為結(jié)束程序 93 9 4 5復(fù)選框控件 94 9 4 5復(fù)選框控件 3 程序的完整代碼如下 usingSystem usingSystem Collections Generic usingSystem ComponentModel usingSystem Data usingSystem Drawing usingSystem Text usingSystem Windows Forms namespaceUseCheckBox publicpartialclassForm1 Form 95 9 4 5復(fù)選框控件 publicForm1 InitializeComponent 檢查用戶輸入的信息是否有效privatevoidtxtName Validating objectsender CancelEventArgse if txtName Text Trim string Empty MessageBox Show 姓名為空 請(qǐng)重新輸入 txtName Focus 96 9 4 5復(fù)選框控件 privatevoidbtnExit Click objectsender EventArgse this Close 97 9 4 5復(fù)選框控件 privatevoidbtnOk Click objectsender EventArgse stringstrUser string Empty strUser 姓名 txtName Text n strUser strUser 業(yè)余愛(ài)好 chkMovie Checked 電影 chkMusic Checked 音樂(lè) chkSport Checked 體育 n DialogResultresult MessageBox Show strUser 信息確認(rèn) MessageBoxButtons OKCancel MessageBoxIcon Information MessageBoxDefaultButton Button1 if result DialogResult OK txtName Clear chkMovie Checked false chkMusic Checked false chkSport Checked false 98 9 4 5復(fù)選框控件 privatevoidbtnExit MouseEnter objectsender EventArgse txtName CausesValidation false privatevoidbtnExit MouseLeave objectsender EventArgse txtName CausesValidation true 99 9 4 5復(fù)選框控件 單擊 信息確認(rèn) 對(duì)話框中的 確定 按鈕 將會(huì)清除已輸入的內(nèi)容 包括復(fù)選框的選中狀態(tài) 程序運(yùn)行 輸入相應(yīng)的內(nèi)容 如圖9 20所示 單擊 確定 按鈕后 彈出的對(duì)話框如圖9 21所示 100 9 4 5復(fù)選框控件 說(shuō)明 代碼中用到了MessageBox的另一個(gè)構(gòu)造方法 這種方法使得MessageBox的外觀更加多樣化 包括了MessageBox的標(biāo)題 Title 圖標(biāo) MessageBoxIcons 的按鈕 MessageBoxButtons 另外 程序中還編寫了btnExit的Enter和Leave事件 目的是為了在單擊 退出 按鈕時(shí) 不引發(fā)TextBox控件的Validating事件 防止多余的提示 在Leave事件中又恢復(fù)TextBox控件的Validating事件 讀者可以先刪除該段代碼 以查看相應(yīng)的效果 101 9 4 6列表框 列表框 ListBox 控件提供一個(gè)項(xiàng)目列表 用戶可以從中選擇一項(xiàng)或多項(xiàng) 在列表框內(nèi)的項(xiàng)目稱為列表框 列表項(xiàng)的加入是按一定的順序進(jìn)行的 這個(gè)順序號(hào)稱為索引號(hào) 列表框內(nèi)列表項(xiàng)的索引號(hào)是從0開始的 即第一個(gè)加入的列表項(xiàng)索引號(hào)為0 其余索引項(xiàng)的索引號(hào)依次類推 102 9 4 6列表框 1 常用屬性 1 Items屬性通過(guò)該屬性 設(shè)置或獲取列表框的項(xiàng) 用戶可以事先在屬性窗口中設(shè)置 也可以在程序中進(jìn)行設(shè)置 2 Multicolumn屬性用于設(shè)置列表框是否多列列表框 默認(rèn)值為False 表示列表項(xiàng)一單列顯示 103 9 4 6列表框 3 SelectionMode屬性該屬性用于設(shè)定列表框選擇屬性 共有4個(gè)可選值 None 表示不允許進(jìn)行選擇 One 表示只允許選擇其中一項(xiàng) 此值為默認(rèn)值 MultiSimple 表示允許同時(shí)選擇多個(gè)列表項(xiàng) MultiExtended 用鼠標(biāo)和Shift鍵組合可以選擇連續(xù)的列表項(xiàng) 用鼠標(biāo)和Ctrl鍵組合可以選擇不連續(xù)的列表項(xiàng) 104 9 4 6列表框 4 SelectedItem屬性獲取或設(shè)置列表框中的當(dāng)前選定項(xiàng) 5 SelectedItems屬性獲取或設(shè)置列表框中當(dāng)前選定項(xiàng)的集合 6 SelectedIndex屬性獲取或設(shè)置列表框中的當(dāng)前選定項(xiàng)的從零開始的索引 在編程時(shí) 用戶可以捕獲該屬性值 然后根據(jù)該值來(lái)進(jìn)行相應(yīng)的動(dòng)作 注意 上述的屬性中 前2項(xiàng)為外觀屬性 而后4項(xiàng)為行為屬性 105 9 4 6列表框 2 響應(yīng)的事件列表框控件除了能響應(yīng)常用的Click DoubleClick GotFocus LostFocus等事件外 還可響應(yīng)特有的SelectedIndexChanged事件 SelectedIndexChanged事件 當(dāng)用戶改變列表中的選擇時(shí) 將會(huì)觸發(fā)此事件 106 9 4 6列表框 3 常用的方法列表框的列表項(xiàng)可以在屬性窗口中通過(guò)Item屬性來(lái)設(shè)置 也可以在應(yīng)用程序中用Items Add或Items Insert方法來(lái)添加 用Items Remove或Items Clear方法刪除 1 Items Add方法Items Add方法的功能是把一個(gè)列表項(xiàng)加入列表框的底部 其一般格式如下 Listname Items Add Item 其中 Listname是列表控件的名稱 Items是要加入列表框的列表框 必須是一個(gè)字符串表達(dá)式 107 9 4 6列表框 2 Items Insert方法Items Insert方法的功能是把一個(gè)列表項(xiàng)插入到列表框的指定位置 其一般格式如下 Listname Items Insert Index 列表項(xiàng) 其中 Index是新增列表項(xiàng)在列表框中的指定位置 Index值為0時(shí) 表示列表項(xiàng)添加到列表框的第一個(gè)位置 3 Items Remove方法Items Remove方法的功能是清除列表框中的指定列表項(xiàng) 其一般格式如下 Listname Items Remove Item 108 9 4 6列表框 Items Clear方法Items Clear方法的功能是清除列表框中的所有列表項(xiàng) 其一般格式如下 Listname Items Clear 109 9 4 6列表框 例9 12 列表框控件的運(yùn)用 1 創(chuàng)建一個(gè)Windows窗體應(yīng)用程序 在窗體上添加如圖9 22所示的控件 其中 ListBox控件名稱如圖所示 4個(gè)按鈕的名稱依次為btnRight btnRightAll btnLeftAll和btnLeft 2 更改lstLeft控件的Items屬性 彈出如圖9 23所示的字符串集合編輯器 依次輸入星期日 星期一 星期二 星期三 星期四 星期五和星期六 單擊 確定 按鈕 得到如圖9 24所示的窗體 3 編寫各個(gè)按鈕的代碼 功能為使得ListBox控件的選項(xiàng)在lstLeft和lstRight控件之間移動(dòng) 并將記錄輸出到lstBottom列表框控件中 110 9 4 6列表框 111 9 4 6列表框 4 完整的程序代碼如下 usingSystem usingSystem Collections Generic usingSystem ComponentModel usingSystem Data usingSystem Drawing usingSystem Text usingSystem Windows Forms namespaceUseListBox publicpartialclassForm1 Form 112 9 4 6列表框 publicForm1 InitializeComponent 113 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 被移至右側(cè) lstLeft Items Remove lstLeft SelectedItem 114 9 4 6列表框 privatevoidbtnRightAll Click objectsender EventArgse foreach objectiteminlstLeft Items lstRight Items Add item lstBottom Items Add 左側(cè)列表項(xiàng)被全部移至右側(cè) lstLeft Items Clear 115 9 4 6列表框 privatevoidbtnLeftAll Click objectsender EventArgse foreach objectiteminlstRight Items lstLeft Items Add item lstBottom Items Add 右側(cè)列表項(xiàng)被全部移至左側(cè) lstRight Items Clear 116 9 4 6列表框 privatevoidbtnLeft Click objectsender Ev- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
30 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語(yǔ)言 界面設(shè)計(jì) 經(jīng)典 教程 ppt 課件
鏈接地址:http://zhongcaozhi.com.cn/p-5883252.html