C#-程序設計教程第9章_第1頁
C#-程序設計教程第9章_第2頁
C#-程序設計教程第9章_第3頁
C#-程序設計教程第9章_第4頁
C#-程序設計教程第9章_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 第9章 基于Windows的應用程序 9.1 Windows窗體應用程序概述 9.2 Windows窗體及控件介紹 9.3 常用控件的屬性、方法和事件 9.4 基于Windows Forms的程序設計10 七月 2022第9章 基于Windows的應用程序10 七月 20229.1 Windows窗體應用程序概述 以下步驟新建一個Windows應用程序并了解程序及項目結構;并且在已有Windows應用程序的基礎上增加一個新的窗體。1Windows窗體項目結構以下過程將創建一個Windows應用程序,并了解整個項目的基本結構。實現步驟如下:(1)點擊右下角“開始” “Visual Studio

2、 2017” 打開Visual Studio 2017開發環境。(2)選擇菜單“文件”“新建”“項目”,打開“新建項目”對話框,如圖9-1所示。在左側“項目類型”窗格中選擇“Windows桌面”,在右側的“模板”窗格中選擇“Windows窗體應用(.NET Framework)”。10 七月 20229.1 Windows窗體應用程序概述(3)在“名稱”文本框中,輸入“MyFirstApplication”作為該項目的名稱。在“位置”文本框中,輸入你準備保存項目的目錄或者單擊“瀏覽”按鈕選擇目錄。(4)單擊“確定”,Visual Studio將新建一個項目,并在窗體設計器中顯示新窗體。(5)如

3、圖9-2所示,在“解決方案管理器”窗口中展開“Form1.cs”前面的“ ”號,雙擊“Form1.Designer.cs”,可以查看“Form1.Designer.cs”的代碼,看程序代碼的基本結構:所有的代碼都屬于名稱空間MyFirstApplication,名稱空間MyFirstApplication中包含了類Form1,類Form1包含一些變量和方法。和類和對象中我們看到的類的定義有所不同,這里Form1的前面多了一個關鍵字partial,關鍵字partial允許將類、結構或接口的定義拆分到多個文件中。10 七月 20229.1 Windows窗體應用程序概述(6)既然加了關鍵字part

4、ial,那么類Form1的另一部分代碼在什么位置呢?右鍵選擇“Form1.cs”,在下拉菜單中選擇“查看代碼”,可以查看“Form1.cs”的代碼。可以看到類Form1繼承了Form類,并且包含構造函數Form1()調用函數InitializeComponent(),函數InitializeComponent()的定義在“Form1.Designer.cs”中。(7)雙擊“Program.cs”,可以看到Main()函數,Main()函數是整個應用程序的入口,由此開始應用程序的運行,Application.Run(new Form1()指在當前線程上開始運行標準應用程序消息循環,并使窗體For

5、m1可見。10 七月 20229.2 Windows窗體及控件介紹1、新建一個窗體 Windows窗體是一個內容豐富的編程框架,用于創建更易于使用的客戶端應用程序。可以在System.Windows.Forms命名空間找到用于創建Windows桌面應用程序的類,它們統稱為Windows Forms類。這個命名空間包含了Form類,它是所有對話框和頂級窗口的基類。另外,System.Windows.Forms命名空間還包含管理控件的類、與剪貼板進行交互的類、菜單和打印機的類等。Windows窗體是所有控件的最高一級容器,它里面可以放置各種各樣的其他控件。10 七月 20229.2 Windows

6、窗體及控件介紹1、新建一個窗體(1)在“解決方案資源管理器”中右鍵單擊項目名“MyFirstApplication”“添加”“Windows窗體”,如圖9-3所示。在彈出的“添加新項”對話框中選擇“Windows窗體”,在“名稱”文本框中輸入新建窗體的名字,例如“Form2.cs”(2)點擊“添加”,新建一個窗體,窗體設計器中出現Form2,解決方案資源管理器中也出現Form2。(3)點擊 按鈕運行程序,出現的是哪一個窗口呢?為什么?10 七月 20229.2 Windows窗體及控件介紹2、設置窗體屬性【例9-3】在本任務中,將在【例9-2】的基礎上,設置窗體的基本屬性。實現步驟如下:(1)

7、雙擊“解決方案資源管理器”中“Form1.cs”出現Form1所在的窗體。(2)在“屬性”窗口找到Text屬性,將屬性值改為“第一個窗體”,如圖9-5所示。(3)點擊 按鈕運行程序,可以看到窗體Form1的標題已經發生改變,如圖9-6所示。(4)除了在“屬性”窗口設置控件屬性,還可以在程序運行時改變控件屬性。雙擊Form1,進入到Form1的默認事件Load,在方法內加入語句“this.Text = 在代碼中改變屬性;”,加入語句后方法如下所示。 private void Form1_Load(object sender, EventArgs e) /思考一下,代碼能改為“Form1.Text

8、=在代碼中改變屬性;”嗎 this.Text = 在代碼中改變屬性; (5)點擊 按鈕運行程序,可以看到窗體Form1的標題同樣發生改變。10 七月 20229.2 Windows窗體及控件介紹3、向窗體添加控件【例9-4】在本任務中,將在【例9-3】的基礎上,在Form1上添加一個按鈕。實現步驟如下:(1)鼠標移動到懸浮在左上方的“工具箱”窗口(如果“工具箱”不存在,可以通過菜單“視圖”“工具箱”打開“工具箱”窗口),雙擊 按鈕(或者在按鈕上按住鼠標左鍵,拖動到Form1窗體上再釋放左鍵),都可以在窗體上添加一個Button控件,在窗體上添加其他控件方法也相同。(2)如果覺得控件的位置不合適

9、,可以選中控件后按住鼠標左鍵拖動到合適的地方,然后釋放鼠標左鍵。(3)覺得控件的大小不合適,可以選中控件,此時控件周圍會出現八個小方框,將鼠標放到八個小方框中的一個,鼠標會變成箭頭,按住鼠標左鍵拖動控件到合適的大小后釋放鼠標。(4)如果需要微調控件大小,按住shift鍵,和“”、“”、“”、“”鍵聯合使用可以微調控件大小。10 七月 20229.2 Windows窗體及控件介紹4、事件處理【例9-5】在本任務中,將在【例9-4】的基礎上,為Form1上的按鈕添加事件代碼,當點擊按鈕后彈出【例9-2】中添加的Form2。實現步驟如下:(1)設置Button控件的Text屬性為“顯示Form2”。

10、(2)當鼠標在控件上雙擊時,會自動添加該控件的默認事件,在“代碼”窗口會自動添加該事件處理的代碼框,只要在代碼框中編輯代碼即可。雙擊Form1上的按鈕,為其添加“Click”事件處理,轉到“Form1.cs”代碼窗口,添加代碼如下: private void button1_Click(object sender, EventArgs e) Form2 form = new Form2(); form.Visible = true; (3)點擊 按鈕運行程序,點擊按鈕,查看結果。10 七月 20229.3. 常用控件的屬性、方法和事件 控件是帶有可視化表示形式的組件。由于所有的窗體控件都是從S

11、ystem.Windows.Forms.Control類繼承而來,所以,所有的Windows窗體控件都具有一些共性。掌握這些共性是快速入門Windows編程的捷徑。1屬性 屬性就是窗體的特征,包括控件的名稱、外觀、可訪問性、數據等內容。不同種類的控件也會有一些屬于自己的特殊屬性,而掌握這些特殊屬性則是掌握不同控件的關鍵。比如,CheckBox控件用于進行選擇,所以就擁有CheckState屬性用于獲取或設置CheckBox的選中狀態,這個屬性是所有單選或多選類控件都會有的屬性,但是Button控件卻不具有這個屬性。在代碼中輸入“對象名.”后,比如“button1.”,圖標 后面的就是該控件所具

12、有的屬性。可以很方便的在Visual Studio集成開發環境中“屬性”窗口設置控件屬性(如果沒有“屬性”窗口,點擊“視圖”“屬性窗口”打開“屬性”窗口),如圖9-7所示。10 七月 20229.3. 常用控件的屬性、方法和事件10 七月 20229.3. 常用控件的屬性、方法和事件2事件 事件是用戶和程序交互地一種最普遍的方式,事件可由用戶操作、程序代碼或系統生成。例如,單擊按鈕時會觸發Click事件,加載窗體時會觸發Load事件。事件產生時會發送消息,并由專門的消息處理程序翻譯并處理消息。 通常,事件都是C#中預先設置好的、可以被對象識別的操作。用戶只需要補充事件處理代碼,就可以完成對事件

13、的響應。控件一般都有一個默認事件,雙擊控件時會自動添加控件的默認事件。其它事件的代碼添加需要點擊 切換到“事件”列表,在相應事件的右側輸入框中雙擊后添加事件響應代碼,如圖9-8所示。10 七月 20229.3. 常用控件的屬性、方法和事件10 七月 20229.3. 常用控件的屬性、方法和事件3方法方法定義了控件類所具有的能夠控制自身狀態的一些操作。10 七月 20229.4 常用控件介紹(1)窗體Form 窗體是所有控件的容器,窗體對應的類是Form,利用窗體的屬性可以設置窗體位置、大小、顏色、標題、是否透明等。窗體可以響應多種事件,如單擊、雙擊、加載、關閉、大小改變、位置改變等等。窗體的默

14、認事件為Load。(2)按鈕Button 按鈕控件Button 允許用戶通過單擊按鈕來執行操作。當按鈕被單擊時,即調用Click事件處理程序,可將代碼放入Click事件處理程序來執行所需要的操作。Button類的Text屬性可用來表示按鈕上顯示的標題文本。(3)標簽Label 標簽控件Label 用來顯示用戶不能編輯(窗體運行后無法編輯)的文本,常用屬性為Text。10 七月 20229.4 常用控件介紹(4)文本框TextBox 文本框TextBox 提供一個文本編輯區域,用于顯示用戶輸入或顯示文本,常用屬性為Text,默認事件為TextChanged,當文本框中的文本發生變化時觸發。此外還

15、有KeyDown、KeyPress和KeyUp事件,用于響應鍵盤按鍵事件。 可以通過設置Multiline屬性為True使文本框變為多行,PasswordChar屬性可以設置密碼字符,ReadOnly屬性為True可以讓文本框只讀。10 七月 20229.4 常用控件介紹(5)單選框RadioButton 單選框RadioButton ,當同一組有多個單選按鈕時,只能有一個單選按鈕被選中。其中同一個容器中的單選按鈕是一組,窗體Form、面板Panel和群組框GroupBox是常用容器。 符號的右邊為選項說明文字,可以通過Text屬性設置。Checked屬性用來設置或者判斷控件是否選中,Chec

16、ked屬性值為True符號為 ,為False符號為 。 RadioButton控件的默認屬性為CheckedChanged事件,當用戶單擊單選按鈕時,其選中狀態會改變,同時觸發CheckedChanged事件。(6)復選框CheckBox 復選框CheckBox ,用戶可以在多個復選框中選擇一個和多個,選中狀態為 ,未選中狀態為 。CheckBox控件的屬性和事件與RadioButton控件基本一樣,此處不再贅述。10 七月 20229.4 常用控件介紹(7)列表框ListBox 列表框ListBox 用來以項的形式顯示一系列選項,并可從中選擇一項或多項。如果有較多的選項,超出列表框區域而不能

17、一次全部顯示時,會自動加上滾動條。列表框最主要的特點是只能從中選擇,不能直接寫入或修改其內容。默認事件為SelectedIndexChanged,當SelectedIndex屬性更改后發生。GetSelected方法返回一個值指示是否選定了指定項。 SelectionMode屬性:屬性值為One表示同時只能有一個選項被選中,屬性值為MultiSimple時可以用鼠標來進行多選,屬性值為MultiExtended時可以用Ctrl或Shift鍵+鼠標進行多選。 SelectedIndex屬性:返回列表框中第一個選定項的下標。 SelectedItem屬性:返回列表框中第一個選定項,通常是字符串值。

18、10 七月 20229.4 常用控件介紹Items屬性:獲取對當前存儲在列表框中的項的引用,其值是列表框中所有項的集合。“列表框名.Items.Count”返回總行數。可以通過“列表框名.Items下標”來獲取或者設置某一項的值,可以通過它來編輯列表框中的選項,Items常用方法有:Add方法(在列表框中添加新項);Insert方法(在列表框中的指定索引位置添加新項);Clear方法(清除列表框中的所有項);Remove方法(刪除列表框中相符的項);RemoveAt方法(刪除列表框中指定索引位置的項)。10 七月 20229.4 常用控件介紹(8)組合框ComboBox 組合框ComboBox 是組合了文本框和列表框的特性而形成的一種控件,其作用與ListBox類似,但是占用的空間要小,常用的屬性為Items,默認事件為SelectedIndexChanged。 DropDown

溫馨提示

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

評論

0/150

提交評論