版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VisualC#2008程序設(shè)計(jì)
第10章
基于Windows的應(yīng)用程序17十二月2023VisualC#2008程序設(shè)計(jì)第10章
基于Windows的應(yīng)用程序10.1Windows窗體應(yīng)用程序概述10.2.Windows窗體及控件介紹10.3.常用控件的屬性、方法和事件10.4.基于WindowsForms的程序設(shè)計(jì)17十二月2023VisualC#2008程序設(shè)計(jì)10.1Windows窗體應(yīng)用程序概述1.Windows窗體項(xiàng)目結(jié)構(gòu)以下過程將創(chuàng)建一個(gè)Windows應(yīng)用程序,并了解整個(gè)項(xiàng)目的基本結(jié)構(gòu)。實(shí)現(xiàn)步驟如下:(1)點(diǎn)擊右下角“開始”
“所有程序”
“MicrosoftVisualStudio2008”
“MicrosoftVisualStudio2008”打開VisualStudio2008開發(fā)環(huán)境。(2)選擇菜單“文件”下面的“新建”菜單的級(jí)聯(lián)菜單“項(xiàng)目…”,打開“新建項(xiàng)目”對(duì)話框,如圖10-1所示。在左側(cè)“項(xiàng)目類型”窗格中選擇“VisualC#”,在右側(cè)的“模板”窗格中選擇“Windows窗體應(yīng)用程序”(3)在“名稱”文本框中,輸入“MyFirstApplication”作為該項(xiàng)目的名稱。在“位置”文本框中,輸入你準(zhǔn)備保存項(xiàng)目的目錄或者單擊“瀏覽…”按鈕選擇目錄。(4)單擊“確定”,VisualStudio將新建一個(gè)項(xiàng)目,并在窗體設(shè)計(jì)器中顯示新窗體。17十二月2023VisualC#2008程序設(shè)計(jì)10.1Windows窗體應(yīng)用程序概述(5)如圖10-2所示,在“解決方案管理器”窗口中展開“Form1.cs”前面的“+”號(hào),雙擊“Form1.Designer.cs”,可以查看“Form1.Designer.cs”的代碼,看程序代碼的基本結(jié)構(gòu):所有的代碼都屬于名稱空間MyFirstApplication,名稱空間MyFirstApplication中包含了類Form1,類Form1包含一些變量和方法。和類和對(duì)象中我們看到的類的定義有所不同,這里Form1的前面多了一個(gè)關(guān)鍵字partial,關(guān)鍵字partial允許將類、結(jié)構(gòu)或接口的定義拆分到多個(gè)文件中。17十二月2023VisualC#2008程序設(shè)計(jì)10.1Windows窗體應(yīng)用程序概述(6)既然加了關(guān)鍵字partial,那么類Form1的另一部分代碼在什么位置呢?右鍵選擇“Form1.cs”,在下拉菜單中選擇“查看代碼”,可以查看“Form1.cs”的代碼??梢钥吹筋怓orm1繼承了Form類,并且包含構(gòu)造函數(shù)Form1()調(diào)用函數(shù)InitializeComponent(),函數(shù)InitializeComponent()的定義在“Form1.Designer.cs”中。17十二月2023VisualC#2008程序設(shè)計(jì)10.1Windows窗體應(yīng)用程序概述(7)雙擊“Program.cs”,可以看到Main()函數(shù),Main()函數(shù)是整個(gè)應(yīng)用程序的入口,由此開始應(yīng)用程序的運(yùn)行,Application.Run(newForm1())指在當(dāng)前線程上開始運(yùn)行標(biāo)準(zhǔn)應(yīng)用程序消息循環(huán),并使窗體Form1可見。17十二月2023VisualC#2008程序設(shè)計(jì)10.2.Windows窗體及控件介紹Windows窗體是一個(gè)內(nèi)容豐富的編程框架,用于創(chuàng)建更易于使用的客戶端應(yīng)用程序??梢栽赟ystem.Windows.Forms命名空間找到用于創(chuàng)建Windows桌面應(yīng)用程序的類,它們統(tǒng)稱為WindowsForms類。這個(gè)命名空間包含了Form類,它是所有對(duì)話框和頂級(jí)窗口的基類。另外,System.Windows.Forms命名空間還包含管理控件的類、與剪貼板進(jìn)行交互的類、菜單和打印機(jī)的類等。Windows窗體是所有控件的最高一級(jí)容器,它里面可以放置各種各樣的其他控件?!纠?0-2】在本任務(wù)中,將在【例10-1】的基礎(chǔ)上,增加一個(gè)窗體。17十二月2023VisualC#2008程序設(shè)計(jì)10.2.Windows窗體及控件介紹1、新建一個(gè)窗體Windows窗體是一個(gè)內(nèi)容豐富的編程框架,用于創(chuàng)建更易于使用的客戶端應(yīng)用程序??梢栽赟ystem.Windows.Forms命名空間找到用于創(chuàng)建Windows桌面應(yīng)用程序的類,它們統(tǒng)稱為WindowsForms類。這個(gè)命名空間包含了Form類,它是所有對(duì)話框和頂級(jí)窗口的基類。另外,System.Windows.Forms命名空間還包含管理控件的類、與剪貼板進(jìn)行交互的類、菜單和打印機(jī)的類等。Windows窗體是所有控件的最高一級(jí)容器,它里面可以放置各種各樣的其他控件。17十二月2023VisualC#2008程序設(shè)計(jì)10.2.Windows窗體及控件介紹【例10-2】在本任務(wù)中,將在【例10-1】的基礎(chǔ)上,增加一個(gè)窗體。實(shí)現(xiàn)步驟如下:(1)在“解決方案資源管理器”中右鍵單擊項(xiàng)目名“MyFirstApplication”
“添加”
“Windows窗體”,如圖10-3所示。在彈出的“添加新項(xiàng)”對(duì)話框中選擇“Windows窗體”,在“名稱”文本框中輸入新建窗體的名字,例如“Form2.cs”,如圖10-4所示。(2)點(diǎn)擊“添加”,新建一個(gè)窗體,窗體設(shè)計(jì)器中出現(xiàn)Form2,解決方案資源管理器中也出現(xiàn)Form2。(3)點(diǎn)擊
按鈕運(yùn)行程序,出現(xiàn)的是哪一個(gè)窗口呢?為什么?17十二月2023VisualC#2008程序設(shè)計(jì)10.2.Windows窗體及控件介紹2、設(shè)置窗體屬性【例10-3】在本任務(wù)中,將在【例10-2】的基礎(chǔ)上,設(shè)置窗體的基本屬性。實(shí)現(xiàn)步驟如下:(1)雙擊“解決方案資源管理器”中“Form1.cs”出現(xiàn)Form1所在的窗體。(2)在“屬性”窗口找到Text屬性,將屬性值改為“第一個(gè)窗體”,如圖10-5所示。(3)點(diǎn)擊
按鈕運(yùn)行程序,可以看到窗體Form1的標(biāo)題已經(jīng)發(fā)生改變,如圖10-6所示。17十二月2023VisualC#2008程序設(shè)計(jì)10.2.Windows窗體及控件介紹(4)除了在“屬性”窗口設(shè)置控件屬性,還可以在程序運(yùn)行時(shí)改變控件屬性。雙擊Form1,進(jìn)入到Form1的默認(rèn)事件Load,在方法內(nèi)加入語句“this.Text="在代碼中改變屬性";”,加入語句后方法如下所示。privatevoidForm1_Load(objectsender,EventArgse){//思考一下,代碼能改為“Form1.Text="在代碼中改變屬性";”嗎t(yī)his.Text="在代碼中改變屬性";}(4)點(diǎn)擊
按鈕運(yùn)行程序,可以看到窗體Form1的標(biāo)題同樣發(fā)生改變。17十二月2023VisualC#2008程序設(shè)計(jì)10.2.Windows窗體及控件介紹3、向窗體添加控件【例10-4】在本任務(wù)中,將在【例10-3】的基礎(chǔ)上,在Form1上添加一個(gè)按鈕。實(shí)現(xiàn)步驟如下:(1)鼠標(biāo)移動(dòng)到懸浮在左上方的“工具箱”窗口(如果“工具箱”不存在,可以通過菜單“視圖”
“工具箱”打開“工具箱”窗口),雙擊
按鈕(或者在按鈕上按住鼠標(biāo)左鍵,拖動(dòng)到Form1窗體上再釋放左鍵),都可以在窗體上添加一個(gè)Button控件,在窗體上添加其他控件方法也相同。(2)如果覺得控件的位置不合適,可以選中控件后按住鼠標(biāo)左鍵拖動(dòng)到合適的地方,然后釋放鼠標(biāo)左鍵。(3)覺得控件的大小不合適,可以選中控件,此時(shí)控件周圍會(huì)出現(xiàn)八個(gè)小方框,將鼠標(biāo)放到八個(gè)小方框中的一個(gè),鼠標(biāo)會(huì)變成箭頭,按住鼠標(biāo)左鍵拖動(dòng)控件到合適的大小后釋放鼠標(biāo)。(4)如果需要微調(diào)控件大小,按住shift鍵,和“↑”、“↓”、“←”、“→”鍵聯(lián)合使用可以微調(diào)控件大小。17十二月2023VisualC#2008程序設(shè)計(jì)10.2.Windows窗體及控件介紹4、事件處理【例10-5】在本任務(wù)中,將在【例10-4】的基礎(chǔ)上,為Form1上的按鈕添加事件代碼,當(dāng)點(diǎn)擊按鈕后彈出【例10-2】中添加的Form2。實(shí)現(xiàn)步驟如下:(1)設(shè)置Button控件的Text屬性為“顯示Form2”。(2)當(dāng)鼠標(biāo)在控件上雙擊時(shí),會(huì)自動(dòng)添加該控件的默認(rèn)事件,在“代碼”窗口會(huì)自動(dòng)添加該事件處理的代碼框,只要在代碼框中編輯代碼即可。雙擊Form1上的按鈕,為其添加“Click”事件處理,轉(zhuǎn)到“Form1.cs”代碼窗口,添加代碼如下:privatevoidbutton1_Click(objectsender,EventArgse){Form2form=newForm2();form.Visible=true;}(3)點(diǎn)擊
按鈕運(yùn)行程序,點(diǎn)擊按鈕,查看結(jié)果。17十二月2023VisualC#2008程序設(shè)計(jì)10.3常用控件的屬性、方法和事件1.屬性屬性就是窗體的特征,包括控件的名稱、外觀、可訪問性、數(shù)據(jù)等內(nèi)容。不同種類的控件也會(huì)有一些屬于自己的特殊屬性,而掌握這些特殊屬性則是掌握不同控件的關(guān)鍵。比如,CheckBox控件用于進(jìn)行選擇,所以就擁有CheckState屬性用于獲取或設(shè)置CheckBox的選中狀態(tài),這個(gè)屬性是所有單選或多選類控件都會(huì)有的屬性,但是Button控件卻不具有這個(gè)屬性。在代碼中輸入“對(duì)象名”+“.”后,比如“button1.”,圖標(biāo)
后面的就是該控件所具有的屬性??梢院芊奖愕脑赩isualStudio集成開發(fā)環(huán)境中“屬性”窗口設(shè)置控件屬性(如果沒有“屬性”窗口,點(diǎn)擊“視圖”
“屬性窗口”打開“屬性”窗口)17十二月2023VisualC#2008程序設(shè)計(jì)10.3常用控件的屬性、方法和事件Location用于獲取或設(shè)置該控件的左上角相對(duì)于其容器的左上角的坐標(biāo)2.事件
事件是用戶和程序交互地一種最普遍的方式,事件可由用戶操作、程序代碼或系統(tǒng)生成。例如,單擊按鈕時(shí)會(huì)觸發(fā)Click事件,加載窗體時(shí)會(huì)觸發(fā)Load事件。事件產(chǎn)生時(shí)會(huì)發(fā)送消息,并由專門的消息處理程序翻譯并處理消息。通常,事件都是C#中預(yù)先設(shè)置好的、可以被對(duì)象識(shí)別的操作。用戶只需要補(bǔ)充事件處理代碼,就可以完成對(duì)事件的響應(yīng)??丶话愣加幸粋€(gè)默認(rèn)事件,雙擊控件時(shí)會(huì)自動(dòng)添加控件的默認(rèn)事件。其它事件的代碼添加需要點(diǎn)擊
切換到“事件”列表,在相應(yīng)事件的右側(cè)輸入框中雙擊后添加事件響應(yīng)代碼.3.方法方法定義了控件類所具有的能夠控制自身狀態(tài)的一些操作。17十二月2023VisualC#2008程序設(shè)計(jì)10.3常用控件的屬性、方法和事件(1)窗體Form窗體時(shí)所有控件的容器,窗體對(duì)應(yīng)的類是Form,利用窗體的屬性可以設(shè)置窗體位置、大小、顏色、標(biāo)題、是否透明等。窗體可以響應(yīng)多種事件,如單擊、雙擊、加載、關(guān)閉、大小改變、位置改變等等。窗體的默認(rèn)事件為L(zhǎng)oad。(2)按鈕Button按鈕控件Button允許用戶通過單擊按鈕來執(zhí)行操作。當(dāng)按鈕被單擊時(shí),即調(diào)用Click事件處理程序,可將代碼放入Click事件處理程序來執(zhí)行所需要的操作。Button類的Text屬性可用來表示按鈕上顯示的標(biāo)題文本。17十二月2023VisualC#2008程序設(shè)計(jì)10.3常用控件的屬性、方法和事件(3)標(biāo)簽Label標(biāo)簽控件Label用來顯示用戶不能編輯的文本,常用屬性為Text。(4)文本框TextBox文本框TextBox提供一個(gè)文本編輯區(qū)域,用于顯示用戶輸入或顯示文本,常用屬性為Text,默認(rèn)事件為TextChanged,當(dāng)文本框中的文本發(fā)生變化時(shí)觸發(fā)。此外還有KeyDown、KeyPress和KeyUp事件,用于響應(yīng)鍵盤按鍵事件??梢酝ㄟ^設(shè)置Multiline屬性為True使文本框變?yōu)槎嘈?,PasswordChar屬性可以設(shè)置密碼字符,ReadOnly屬性為True可以讓文本框只讀。17十二月2023VisualC#2008程序設(shè)計(jì)10.3常用控件的屬性、方法和事件(5)單選框RadioButton單選框RadioButton,當(dāng)同一組有多個(gè)單選按鈕時(shí),只能有一個(gè)單選按鈕被選中。其中同一個(gè)容器中的單選按鈕是一組,窗體Form、面板Panel和群組框GroupBox是常用容器。
符號(hào)的右邊為選項(xiàng)說明文字,可以通過Text屬性設(shè)置。Checked屬性用來設(shè)置或者判斷控件是否選中,Checked屬性值為True符號(hào)為
,為False符號(hào)為
。RadioButton控件的默認(rèn)屬性為CheckedChanged事件,當(dāng)用戶單擊單選按鈕時(shí),其選中狀態(tài)會(huì)改變,同時(shí)觸發(fā)CheckedChanged事件。17十二月2023VisualC#2008程序設(shè)計(jì)10.3常用控件的屬性、方法和事件(6)復(fù)選框CheckBox復(fù)選框CheckBox,用戶可以在多個(gè)復(fù)選框中選擇一個(gè)和多個(gè),CheckBox控件的屬性和事件與RadioButton控件基本一樣,此處不再贅述。(7)列表框ListBox列表框ListBox用來以項(xiàng)的形式顯示一系列選項(xiàng),并可從中選擇一項(xiàng)或多項(xiàng)。如果有較多的選項(xiàng),超出列表框區(qū)域而不能一次全部顯示時(shí),會(huì)自動(dòng)加上滾動(dòng)條。列表框最主要的特點(diǎn)是只能從中選擇,不能直接寫入或修改其內(nèi)容。默認(rèn)事件為SelectedIndexChanged,當(dāng)SelectedIndex屬性更改后發(fā)生。GetSelected方法,返回一個(gè)值指示是否選定了指定項(xiàng)。17十二月2023VisualC#2008程序設(shè)計(jì)10.3常用控件的屬性、方法和事件Items屬性:獲取對(duì)當(dāng)前存儲(chǔ)在列表框中的項(xiàng)的引用,其值是列表框中所有項(xiàng)的集合?!傲斜砜蛎?Items.Count”返回總行數(shù)??梢酝ㄟ^“列表框名.Items[下標(biāo)]”來獲取或者設(shè)置某一項(xiàng)的值,可以通過它來編輯列表框中的選項(xiàng),Items常用方法有:Add方法(在列表框中添加新項(xiàng));Insert方法(在列表框中的指定索引位置添加新項(xiàng));Clear方法(清除列表框中的所有項(xiàng));Remove方法(刪除列表框中相符的項(xiàng));RemoveAt方法(刪除列表框中指定索引位置的項(xiàng))。SelectionMode屬性:屬性值為One表示同時(shí)只能有一個(gè)選項(xiàng)被選中,屬性值為MultiSimple時(shí)可以用鼠標(biāo)來進(jìn)行多選,屬性值為MultiExtended時(shí)可以用Ctrl或Shift鍵+鼠標(biāo)進(jìn)行多選。SelectedIndex屬性:返回列表框中第一個(gè)選定項(xiàng)的下標(biāo)。SelectedItem屬性:返回列表框中第一個(gè)選定項(xiàng),通常是字符串值。17十二月2023VisualC#2008程序設(shè)計(jì)10.3常用控件的屬性、方法和事件(8)組合框ComboBox組合框ComboBox是組合了文本框和列表框的特性而形成的一種控件,其作用與ListBox類似,但是占用的空間要小,常用的屬性為Items,默認(rèn)事件為SelectedIndexChanged。DropDownStyle屬性:屬性值為Simple時(shí),顯示在窗體中的是文本框和列表框,列表框不能被收起;屬性值為DropDown時(shí)即可在輸入,又可選擇;屬性值為DropDownList時(shí)只可選擇不可輸入。17十二月2023VisualC#2008程序設(shè)計(jì)10.3常用控件的屬性、方法和事件(9)圖片框PictureBox圖片框PictureBox用來顯示圖像。通過Image屬性旁的
選擇圖片框中的圖片。ImageLocation屬性用來設(shè)置圖片文件的路徑,可以是相對(duì)路徑(相對(duì)路徑的參照物是最后編譯生成的可執(zhí)行文件exe)也可以是絕對(duì)路徑。(10)圖片列表組件ImageList圖片列表組件ImageList相對(duì)于一個(gè)圖片數(shù)組,主要功能是為程序提供一系列同一尺寸的圖片,在使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電廠煤炭購銷合同(5篇)
- 2025版新能源汽車銷售合同終止與售后服務(wù)保障協(xié)議2篇
- 商業(yè)演出合同書
- 勞務(wù)工程施工承包合同
- 代運(yùn)營合作合同
- 2025年全球及中國自動(dòng)駕駛網(wǎng)絡(luò) (AND) 解決方案行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國高粘度改性纖維素行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國機(jī)械租賃平臺(tái)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 二零二四年離婚協(xié)議中特殊權(quán)益保障及執(zhí)行協(xié)議3篇
- 23年-24年員工三級(jí)安全培訓(xùn)考試題答案綜合卷
- 篝火晚會(huì)流程
- 老年髖部骨折患者圍術(shù)期下肢深靜脈血栓基礎(chǔ)預(yù)防專家共識(shí)(2024版)解讀 課件
- 江蘇省無錫市2024年中考語文試卷【附答案】
- 五年級(jí)上冊(cè)小數(shù)脫式計(jì)算200道及答案
- 2024-2030年中國護(hù)肝解酒市場(chǎng)營銷策略分析與未來銷售渠道調(diào)研研究報(bào)告
- 人教版高中數(shù)學(xué)必修二《第十章 概率》單元同步練習(xí)及答案
- 智慧校園信息化建設(shè)項(xiàng)目組織人員安排方案
- 浙教版七年級(jí)上冊(cè)數(shù)學(xué)第4章代數(shù)式單元測(cè)試卷(含答案)
- 七年級(jí)下冊(cè)第六章《人體生命活動(dòng)的調(diào)節(jié)》作業(yè)設(shè)計(jì)
- 特種設(shè)備使用單位日管控、周排查、月調(diào)度示范表
- 一病一品成果護(hù)理匯報(bào)
評(píng)論
0/150
提交評(píng)論