版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第6章 Windows程序設計,教學提示與目標6.1 創(chuàng)建第一個Windows應用程序6.2 在Windows窗體中繪圖6.3 Windows菜單6.4 鼠標和鍵盤輸入6.5 Windows標準控件6.6 常用對話框6.7 工 具 欄 6.8 上 機 指 導,教學提示與目標,教學提示:Windows程序是現(xiàn)在最常見的應用程序,我們將在這一章講解如何編寫Windows應用程序,并給出一些Windows
2、程序的例子。教學目標:學會使用C#來創(chuàng)建Windows應用程序,學會比較簡單的設計,包括在窗體中繪圖、創(chuàng)建Windows菜單、響應鼠標和鍵盤輸入、Windows標準控件、對話框和工具欄。,6.1 創(chuàng)建第一個Windows應用程序,6.1.1 創(chuàng)建Windows應用程序6.1.2 Windows應用程序代碼結構6.1.3 修改窗體屬性6.1.4 添加窗體事件處理方法,6.1.1 創(chuàng)建Windows應用程序,從菜單欄中選
3、擇【文件】|【新建】|【項目】命令,在【新建項目】對話框的左欄中選擇【Visual C#項目】,在右欄【模板】中選擇【W(wǎng)indows 應用程序】圖標選項,在【名稱】文本框中輸入程序名稱,如圖6.1所示。,圖6.1 新建Windows項目,6.1.2 Windows應用程序代碼結構,1. 查看代碼 用鼠標在Form1上右擊,從彈出的快捷菜單中選擇View Code(查看代碼)命令。2. 代碼結構①引入類庫
4、②定義一個窗體類,繼承自System.Windows.Forms.Form③在窗體類中定義了一個控件的容器④定義初始化這個窗體類的方法⑤定義窗體類被釋放的方法,6.1.3 修改窗體屬性,Windows窗體中有一些比較常用的窗體屬性,它們包括:?BackColor:背景顏色?Cursor:光標?Enabled:對用戶界面是否能響應?Font:窗體字體?ForeColor:前景顏色?Height:高度?
5、Icon:圖標?Left:左邊界?Location:窗體右上角的位置?MaximumBox:最大化按鈕是否顯示?MaximumSize:最大化的大小?Menu:菜單?Name:名稱?Opacity:透明度?Right:右邊界?RightToLeft:窗體是否允許從右到左的字體?ShowInTaskbar:是否在任務欄中顯示?Site:位置?Size:大小?Text:在Windows標題
6、欄中的名稱?TopMost:是否在最上?Visible:是否可見?WindowState:窗體的狀態(tài),6.1.4 添加窗體事件處理方法,Windows窗體中有一些比較常用的窗體事件,它們包括:?Click:單擊事件?KeyDown:按下鍵盤鍵的時候觸發(fā)?KeyPress:按下鍵盤鍵的時候觸發(fā)?KeyUp:鍵盤鍵彈起的時候觸發(fā)?Load:窗體被載入的時候觸發(fā)?MouseDown:鼠標被按下的時候觸發(fā)
7、?MouseEnter:鼠標移入窗體的時候觸發(fā)?MouseLeave:鼠標移出窗體的時候觸發(fā)?MouseMove:鼠標移動的時候觸發(fā)?Move:窗體移動的時候觸發(fā),6.2 在Windows窗體中繪圖,6.2.1 新建Drawer程序6.2.2 繪制直線6.2.3 繪制曲線6.2.4 繪制橢圓6.2.5 填充橢圓6.2.6 繪制字符串,6.2.1 新建Drawer程序,新建一個名為“Drawer”的
8、Windows應用程序。由于應用程序中的Form1窗體類都是繼承自System.Windows.Forms.Form類,且后者擁有如下事件處理方法:OnPaint(PaintEventArgs e); 它將在窗體需要重繪的時候被調用,所以我們可以在Form1中重寫這個方法來實現(xiàn)在窗體中繪圖。,6.2.2 繪制直線,在Fom1中編寫的OnPaint方法重載代碼如下:protected override v
9、oid OnPaint(PaintEventArgs e){base.OnPaint(e);// 新建筆對象Pen pen = new Pen(Color.Black);// 繪制一條直線e.Graphics.DrawLine(pen, new Point(0, 0), new Point(146, 146));}編譯然后運行Drawer應用程序,將出現(xiàn)如圖6.14所示的窗體。DrawLine方法在Grap
10、hics類中的聲明如下:public void DrawLine( Pen pen, Point pt1, Point pt2);其中pen為繪圖筆的類型,pt1為起始點,pt2為終點。,圖6.14 繪制直線的Form1,6.2.3 繪制曲線,在Fom1中編寫的OnPaint方法重載代碼如下:protected override void OnPaint(PaintEventArgs e){ba
11、se.OnPaint(e);// 新建筆對象Pen pen = new Pen(Color.Black);// 繪制一條曲線e.Graphics.DrawCurve(pen,new Point[]{new Point(10, 10), new Point(100, 200), new Point(180, 60)}); }編譯然后運行Drawer應用程序,將出現(xiàn)如圖6.15所示的窗體。DrawCurve方法在
12、Graphics類中的聲明如下:public void DrawCurve(Pen pen,Point[] points);其中pen為繪圖筆的類型,points為結點集。,圖6.15 繪制曲線的Form1,6.2.4 繪制橢圓,在Fom1中編寫的OnPaint方法重載代碼如下:protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);
13、// 新建筆對象Pen pen = new Pen(Color.Black);// 繪制一條橢圓e.Graphics.DrawEllipse(pen, new Rectangle(new Point(3, 3), new Size(260, 160))); }編譯然后運行Drawer應用程序,將出現(xiàn)如圖6.16所示的窗體。DrawEllipse方法在Graphics類中的聲明如下:public void D
14、rawEllipse( Pen pen, Rectangle rect); 其中pen為繪圖筆的類型,rect定義了橢圓頂點和大小。,圖6.16 繪制橢圓的Form1,6.2.5 填充橢圓,在Fom1中編寫的OnPaint方法重載代碼如下:protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);// 新建筆對象Pen pe
15、n = new Pen(Color.Black);// 創(chuàng)建一個刷子System.Drawing.SolidBrush brush = new System.Drawing.SolidBrush(Color.Blue);// 填充一個橢圓e.Graphics.FillEllipse(brush, new Rectangle(new Point(40, 60), new Size(100,60)));}編譯然后運行
16、Drawer應用程序,將出現(xiàn)如圖6.17所示的窗體。,圖6.17 填充橢圓的Form1,6.2.6 繪制字符串,在Fom1中編寫的OnPaint方法重載代碼如下:protected override void OnPaint(PaintEventArgs e){base.OnPaint (e);// 新建刷子對象Brush brush = new SolidBrush(Color.Red);// 新建字體對象
17、Font font = new Font("Times", 20, FontStyle.Bold | FontStyle.Underline | FontStyle.Italic);// 繪制字符串e.Graphics.DrawString("Hello, World!", font, brush, new PointF(34, 46));}編譯然后運行Drawer
18、應用程序,將出現(xiàn)如圖6.18所示的窗體。,圖6.18 輸出字符串的Form1,6.3 Windows菜單,菜單是GUI應用程序的主要部分,.NET框架提供了大量的支持菜單的類,表6.1列出了System.Windows.Form中用于創(chuàng)建時操作菜單的類。6.3.1 主菜單6.3.2 處理菜單命令6.3.3 快捷菜單,表6.1 System.Windows.Form中操作菜 單的類,6.3.1
19、 主菜單,運行菜單代碼時,將出現(xiàn)一個窗體,如圖6.19所示。,,圖6.19 添加了菜單的Form1,6.3.2 處理菜單命令,從菜單中選擇一個項目會觸發(fā)菜單項的Click事件,并激活這個菜單項已注冊的Click事件處理程序,Click事件的處理程序原形為:void HandlerName(Object sender, EventArgs e);,6.3.3 快捷菜單,許多應用程序在用戶單擊右鍵時會彈出快捷菜單,在Windows窗
20、體應用程序中,ContextMenu對象代表快捷菜單,在ContextMenu中添加菜單的方法與MainMenu相同。顯示快捷菜單的方法是調用ContextMenu.類中定義的Show方法。 現(xiàn)在我們向MenuTester程序中的Form1添加一個快捷菜單,步驟如下。(1)在Forml類成員聲明代碼處添加如下代碼:(2)在Forml的構造函數(shù)中增加ContextMenu對象的初始化代碼:(3)向Fo
21、rm1添加一個MouseUp事件處理方法,添加事件處理方法的步驟前面已經(jīng)介紹過了。然后向方法增加用于顯示快捷菜單的有關代碼。(4)運行程序后,在窗體內單擊右鍵。(5)從中選擇【打開文件】命令,顯示一個對話框。,6.4 鼠標和鍵盤輸入,6.4.1 處理鍵盤輸入6.4.2 處理鼠標輸入,6.4.1 處理鍵盤輸入,首先新建一個名為“KeyboardInput”的Windows應用程序,來具體討論如何進行鍵盤輸入處理。
22、 System.Forms.Form中的OnKeyDown方法和OnKeyUp方法分別在鍵盤上的鍵被按下和釋放時調用,這時候KeyEventArgs類型的事件參數(shù)將被傳遞給OnKeyDown和OnKeyUp方法。,6.4.2 處理鼠標輸入,首先新建一個名為MouseInput的Windows應用程序,來具體討論如何進行鼠標輸入處理。 System.Forms.Form的OnMouseDown方法和
23、OnMouseUp方法分別在鼠標被按下和鼠標被釋放時調用,這時候MouseEventArgs類型的事件參數(shù)將被傳遞給OnMouseDown和OnMouseUp方法。,6.5 Windows標準控件,Windows包括了20多種內置控件類型,我們可以使用這些控件來縮短開發(fā)時間,并保證程序外觀一致。6.5.1 控件的種類6.5.2 控件的添加方法6.5.3 建立顯示目錄下所有文件的程序,6.5.1 控件的種類,在System
24、.Windows.Forms命名空間中提供了大量的Windows控件的托管封裝。下面我們?yōu)榇蠹伊谐鯯ystem.Windows.Forms命名空間中的所有控件類,如表6.2所示。,表6.2 System.Windows.Forms命名空間 中控件類,6.5.2 控件的添加方法,1. 使用代碼來添加一個控件 步驟如下:(1) 實例化控件類;(2) 設置控件的屬性值,并對其進行初始化;(3) 添
25、加到窗口中。2. 圖形化添加控件的方法(1)從選項卡標簽選中窗體的設計視圖,則可以看到左邊的ToolBox上有一些歸類劃分的控件條。(2)單擊【W(wǎng)indows Forms】控件條,將展開許多Windows標準控件。(3)單擊我們想要選擇的控件,比如我們要添加一個按鈕控件,則單擊Button控件(4)然后在窗體上按需要放置的位置和大小繪制。這樣就完成了添加一個按鈕控件的工作,6.5.3 建立顯示目錄下所有文件的程序,
26、(1) 新建一個名為ListFile的Windows應用程序。(2) 向Form1窗體中添加一個Label控件,一個TextBox控件,一個ListBox控件和一個Button控件,設置如表6.3所示。,表6.3 控件設置對照表,6.6 常用對話框,6.6.1 選擇文件對話框6.6.2 選擇字體對話框6.6.3 選擇顏色對話框6.6.4 保存文件對話框6.6.5 設置打印機對話框6.6.6 打印預覽對話框,6
27、.6.1 選擇文件對話框,選擇文件對話框類位于System.Windows.Froms.OpenFileDialog。 選擇文件對話框的常用屬性如表6.4所示。,表6.4 選擇文件對話框的常用屬性,6.6.2 選擇字體對話框,選擇字體對話框類位于System.Windows.Froms.FontDialog。 選擇字體對話框的一些常用的屬性如表6.6所示。,表6.6 選擇字體對話框的常用屬
28、性,6.6.3 選擇顏色對話框,選擇顏色對話框類位于System.Windows.Froms.ColorDialog。 顏色選擇對話框的一些常用的屬性如表6.8所示。,表6.8 顏色選擇對話框的常用屬性,6.6.4 保存文件對話框,保存文件對話框類位于 System.Windows.Froms.SaveFileDialog。 保存文件對話框的一些常用的屬性如表
29、6.9所示。,表6.9 保存文件對話框的常用屬性,6.6.5 設置打印機對話框,設置打印機對話框類位于System.Windows.Froms.PrintDialog。 設置打印機對話框的一些常用的屬性如表6.10所示。,表6.10 設置打印機對話框常用屬性,6.6.6 打印預覽對話框,打印預覽對話框類位于System.Windows.Froms.PrintPreviewDialog。
30、打印預覽對話框的一些常用的屬性如表6.11所示。,表6.11 打印預覽對話框的常用屬性,6.7 工 具 欄,,6.8 上 機 指 導,在這個較為大型的實驗中,將會用到前面介紹的幾乎所有的Windows程序設計方法,而且還會用到一些前面沒有介紹的方法。目的是幫助大家進一步熟悉C#的Windows程序設計方法。1. 程序目標2. 界面設計3. 添加內部處理類4. 向SimpleChart類中添加事件處理方法5.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《visual_c--.net程序設計教程與上機指導》課件
- 《visual c--.net程序設計教程與上機指導》第11章數(shù)據(jù)庫編程
- visual basic 程序設計教程
- c++程序設計題解與上機指導習題程序.
- 上機實驗指導 c語言程序設計
- 基于c#的windows 應用程序設計
- visual_c程序設計與應用教程課后答案
- c++程序設計教程與實驗指導
- c語言程序設計第6章課件-
- 《c#程序設計基礎》習題庫程序
- 《c#程序設計》期末題庫
- 《c#程序設計基礎》習題庫程序
- c#語言程序設計解析
- 《c#程序設計基礎》習題庫程序
- c#程序設計單元教學設計
- windows程序設計
- c++程序設計教程
- c語言程序設計教程
- visual basic程序設計
- web程序設計_第6章__web數(shù)據(jù)庫程序設計
評論
0/150
提交評論