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