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