《visual c#程序設(shè)計(jì)教程與上機(jī)指導(dǎo)》第6章windows程序設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩48頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第6章 Windows程序設(shè)計(jì),教學(xué)提示與目標(biāo)6.1 創(chuàng)建第一個(gè)Windows應(yīng)用程序6.2 在Windows窗體中繪圖6.3 Windows菜單6.4 鼠標(biāo)和鍵盤(pán)輸入6.5 Windows標(biāo)準(zhǔn)控件6.6 常用對(duì)話框6.7 工 具 欄 6.8 上 機(jī) 指 導(dǎo),教學(xué)提示與目標(biāo),教學(xué)提示:Windows程序是現(xiàn)在最常見(jiàn)的應(yīng)用程序,我們將在這一章講解如何編寫(xiě)Windows應(yīng)用程序,并給出一些Windows

2、程序的例子。教學(xué)目標(biāo):學(xué)會(huì)使用C#來(lái)創(chuàng)建Windows應(yīng)用程序,學(xué)會(huì)比較簡(jiǎn)單的設(shè)計(jì),包括在窗體中繪圖、創(chuàng)建Windows菜單、響應(yīng)鼠標(biāo)和鍵盤(pán)輸入、Windows標(biāo)準(zhǔn)控件、對(duì)話框和工具欄。,6.1 創(chuàng)建第一個(gè)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、擇【文件】|【新建】|【項(xiàng)目】命令,在【新建項(xiàng)目】對(duì)話框的左欄中選擇【Visual C#項(xiàng)目】,在右欄【模板】中選擇【W(wǎng)indows 應(yīng)用程序】圖標(biāo)選項(xiàng),在【名稱(chēng)】文本框中輸入程序名稱(chēng),如圖6.1所示。,圖6.1 新建Windows項(xiàng)目,6.1.2 Windows應(yīng)用程序代碼結(jié)構(gòu),1. 查看代碼 用鼠標(biāo)在Form1上右擊,從彈出的快捷菜單中選擇View Code(查看代碼)命令。2. 代碼結(jié)構(gòu)①引入類(lèi)庫(kù)

4、②定義一個(gè)窗體類(lèi),繼承自System.Windows.Forms.Form③在窗體類(lèi)中定義了一個(gè)控件的容器④定義初始化這個(gè)窗體類(lèi)的方法⑤定義窗體類(lèi)被釋放的方法,6.1.3 修改窗體屬性,Windows窗體中有一些比較常用的窗體屬性,它們包括:?BackColor:背景顏色?Cursor:光標(biāo)?Enabled:對(duì)用戶(hù)界面是否能響應(yīng)?Font:窗體字體?ForeColor:前景顏色?Height:高度?

5、Icon:圖標(biāo)?Left:左邊界?Location:窗體右上角的位置?MaximumBox:最大化按鈕是否顯示?MaximumSize:最大化的大小?Menu:菜單?Name:名稱(chēng)?Opacity:透明度?Right:右邊界?RightToLeft:窗體是否允許從右到左的字體?ShowInTaskbar:是否在任務(wù)欄中顯示?Site:位置?Size:大小?Text:在Windows標(biāo)題

6、欄中的名稱(chēng)?TopMost:是否在最上?Visible:是否可見(jiàn)?WindowState:窗體的狀態(tài),6.1.4 添加窗體事件處理方法,Windows窗體中有一些比較常用的窗體事件,它們包括:?Click:?jiǎn)螕羰录?KeyDown:按下鍵盤(pán)鍵的時(shí)候觸發(fā)?KeyPress:按下鍵盤(pán)鍵的時(shí)候觸發(fā)?KeyUp:鍵盤(pán)鍵彈起的時(shí)候觸發(fā)?Load:窗體被載入的時(shí)候觸發(fā)?MouseDown:鼠標(biāo)被按下的時(shí)候觸發(fā)

7、?MouseEnter:鼠標(biāo)移入窗體的時(shí)候觸發(fā)?MouseLeave:鼠標(biāo)移出窗體的時(shí)候觸發(fā)?MouseMove:鼠標(biāo)移動(dòng)的時(shí)候觸發(fā)?Move:窗體移動(dòng)的時(shí)候觸發(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程序,新建一個(gè)名為“Drawer”的

8、Windows應(yīng)用程序。由于應(yīng)用程序中的Form1窗體類(lèi)都是繼承自System.Windows.Forms.Form類(lèi),且后者擁有如下事件處理方法:OnPaint(PaintEventArgs e); 它將在窗體需要重繪的時(shí)候被調(diào)用,所以我們可以在Form1中重寫(xiě)這個(gè)方法來(lái)實(shí)現(xiàn)在窗體中繪圖。,6.2.2 繪制直線,在Fom1中編寫(xiě)的OnPaint方法重載代碼如下:protected override v

9、oid OnPaint(PaintEventArgs e){base.OnPaint(e);// 新建筆對(duì)象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類(lèi)中的聲明如下:public void DrawLine( Pen pen, Point pt1, Point pt2);其中pen為繪圖筆的類(lèi)型,pt1為起始點(diǎn),pt2為終點(diǎn)。,圖6.14 繪制直線的Form1,6.2.3 繪制曲線,在Fom1中編寫(xiě)的OnPaint方法重載代碼如下:protected override void OnPaint(PaintEventArgs e){ba

11、se.OnPaint(e);// 新建筆對(duì)象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類(lèi)中的聲明如下:public void DrawCurve(Pen pen,Point[] points);其中pen為繪圖筆的類(lèi)型,points為結(jié)點(diǎn)集。,圖6.15 繪制曲線的Form1,6.2.4 繪制橢圓,在Fom1中編寫(xiě)的OnPaint方法重載代碼如下:protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);

13、// 新建筆對(duì)象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類(lèi)中的聲明如下:public void D

14、rawEllipse( Pen pen, Rectangle rect); 其中pen為繪圖筆的類(lèi)型,rect定義了橢圓頂點(diǎn)和大小。,圖6.16 繪制橢圓的Form1,6.2.5 填充橢圓,在Fom1中編寫(xiě)的OnPaint方法重載代碼如下:protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);// 新建筆對(duì)象Pen pe

15、n = new Pen(Color.Black);// 創(chuàng)建一個(gè)刷子System.Drawing.SolidBrush brush = new System.Drawing.SolidBrush(Color.Blue);// 填充一個(gè)橢圓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中編寫(xiě)的OnPaint方法重載代碼如下:protected override void OnPaint(PaintEventArgs e){base.OnPaint (e);// 新建刷子對(duì)象Brush brush = new SolidBrush(Color.Red);// 新建字體對(duì)象

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框架提供了大量的支持菜單的類(lèi),表6.1列出了System.Windows.Form中用于創(chuàng)建時(shí)操作菜單的類(lèi)。6.3.1 主菜單6.3.2 處理菜單命令6.3.3 快捷菜單,表6.1 System.Windows.Form中操作菜 單的類(lèi),6.3.1

19、 主菜單,運(yùn)行菜單代碼時(shí),將出現(xiàn)一個(gè)窗體,如圖6.19所示。,,圖6.19 添加了菜單的Form1,6.3.2 處理菜單命令,從菜單中選擇一個(gè)項(xiàng)目會(huì)觸發(fā)菜單項(xiàng)的Click事件,并激活這個(gè)菜單項(xiàng)已注冊(cè)的Click事件處理程序,Click事件的處理程序原形為:void HandlerName(Object sender, EventArgs e);,6.3.3 快捷菜單,許多應(yīng)用程序在用戶(hù)單擊右鍵時(shí)會(huì)彈出快捷菜單,在Windows窗

20、體應(yīng)用程序中,ContextMenu對(duì)象代表快捷菜單,在ContextMenu中添加菜單的方法與MainMenu相同。顯示快捷菜單的方法是調(diào)用ContextMenu.類(lèi)中定義的Show方法。 現(xiàn)在我們向MenuTester程序中的Form1添加一個(gè)快捷菜單,步驟如下。(1)在Forml類(lèi)成員聲明代碼處添加如下代碼:(2)在Forml的構(gòu)造函數(shù)中增加ContextMenu對(duì)象的初始化代碼:(3)向Fo

21、rm1添加一個(gè)MouseUp事件處理方法,添加事件處理方法的步驟前面已經(jīng)介紹過(guò)了。然后向方法增加用于顯示快捷菜單的有關(guān)代碼。(4)運(yùn)行程序后,在窗體內(nèi)單擊右鍵。(5)從中選擇【打開(kāi)文件】命令,顯示一個(gè)對(duì)話框。,6.4 鼠標(biāo)和鍵盤(pán)輸入,6.4.1 處理鍵盤(pán)輸入6.4.2 處理鼠標(biāo)輸入,6.4.1 處理鍵盤(pán)輸入,首先新建一個(gè)名為“KeyboardInput”的Windows應(yīng)用程序,來(lái)具體討論如何進(jìn)行鍵盤(pán)輸入處理。

22、 System.Forms.Form中的OnKeyDown方法和OnKeyUp方法分別在鍵盤(pán)上的鍵被按下和釋放時(shí)調(diào)用,這時(shí)候KeyEventArgs類(lèi)型的事件參數(shù)將被傳遞給OnKeyDown和OnKeyUp方法。,6.4.2 處理鼠標(biāo)輸入,首先新建一個(gè)名為MouseInput的Windows應(yīng)用程序,來(lái)具體討論如何進(jìn)行鼠標(biāo)輸入處理。 System.Forms.Form的OnMouseDown方法和

23、OnMouseUp方法分別在鼠標(biāo)被按下和鼠標(biāo)被釋放時(shí)調(diào)用,這時(shí)候MouseEventArgs類(lèi)型的事件參數(shù)將被傳遞給OnMouseDown和OnMouseUp方法。,6.5 Windows標(biāo)準(zhǔn)控件,Windows包括了20多種內(nèi)置控件類(lèi)型,我們可以使用這些控件來(lái)縮短開(kāi)發(fā)時(shí)間,并保證程序外觀一致。6.5.1 控件的種類(lèi)6.5.2 控件的添加方法6.5.3 建立顯示目錄下所有文件的程序,6.5.1 控件的種類(lèi),在System

24、.Windows.Forms命名空間中提供了大量的Windows控件的托管封裝。下面我們?yōu)榇蠹伊谐鯯ystem.Windows.Forms命名空間中的所有控件類(lèi),如表6.2所示。,表6.2 System.Windows.Forms命名空間 中控件類(lèi),6.5.2 控件的添加方法,1. 使用代碼來(lái)添加一個(gè)控件 步驟如下:(1) 實(shí)例化控件類(lèi);(2) 設(shè)置控件的屬性值,并對(duì)其進(jìn)行初始化;(3) 添

25、加到窗口中。2. 圖形化添加控件的方法(1)從選項(xiàng)卡標(biāo)簽選中窗體的設(shè)計(jì)視圖,則可以看到左邊的ToolBox上有一些歸類(lèi)劃分的控件條。(2)單擊【W(wǎng)indows Forms】控件條,將展開(kāi)許多Windows標(biāo)準(zhǔn)控件。(3)單擊我們想要選擇的控件,比如我們要添加一個(gè)按鈕控件,則單擊Button控件(4)然后在窗體上按需要放置的位置和大小繪制。這樣就完成了添加一個(gè)按鈕控件的工作,6.5.3 建立顯示目錄下所有文件的程序,

26、(1) 新建一個(gè)名為L(zhǎng)istFile的Windows應(yīng)用程序。(2) 向Form1窗體中添加一個(gè)Label控件,一個(gè)TextBox控件,一個(gè)ListBox控件和一個(gè)Button控件,設(shè)置如表6.3所示。,表6.3 控件設(shè)置對(duì)照表,6.6 常用對(duì)話框,6.6.1 選擇文件對(duì)話框6.6.2 選擇字體對(duì)話框6.6.3 選擇顏色對(duì)話框6.6.4 保存文件對(duì)話框6.6.5 設(shè)置打印機(jī)對(duì)話框6.6.6 打印預(yù)覽對(duì)話框,6

27、.6.1 選擇文件對(duì)話框,選擇文件對(duì)話框類(lèi)位于System.Windows.Froms.OpenFileDialog。 選擇文件對(duì)話框的常用屬性如表6.4所示。,表6.4 選擇文件對(duì)話框的常用屬性,6.6.2 選擇字體對(duì)話框,選擇字體對(duì)話框類(lèi)位于System.Windows.Froms.FontDialog。 選擇字體對(duì)話框的一些常用的屬性如表6.6所示。,表6.6 選擇字體對(duì)話框的常用屬

28、性,6.6.3 選擇顏色對(duì)話框,選擇顏色對(duì)話框類(lèi)位于System.Windows.Froms.ColorDialog。 顏色選擇對(duì)話框的一些常用的屬性如表6.8所示。,表6.8 顏色選擇對(duì)話框的常用屬性,6.6.4 保存文件對(duì)話框,保存文件對(duì)話框類(lèi)位于 System.Windows.Froms.SaveFileDialog。 保存文件對(duì)話框的一些常用的屬性如表

29、6.9所示。,表6.9 保存文件對(duì)話框的常用屬性,6.6.5 設(shè)置打印機(jī)對(duì)話框,設(shè)置打印機(jī)對(duì)話框類(lèi)位于System.Windows.Froms.PrintDialog。 設(shè)置打印機(jī)對(duì)話框的一些常用的屬性如表6.10所示。,表6.10 設(shè)置打印機(jī)對(duì)話框常用屬性,6.6.6 打印預(yù)覽對(duì)話框,打印預(yù)覽對(duì)話框類(lèi)位于System.Windows.Froms.PrintPreviewDialog。

30、打印預(yù)覽對(duì)話框的一些常用的屬性如表6.11所示。,表6.11 打印預(yù)覽對(duì)話框的常用屬性,6.7 工 具 欄,,6.8 上 機(jī) 指 導(dǎo),在這個(gè)較為大型的實(shí)驗(yàn)中,將會(huì)用到前面介紹的幾乎所有的Windows程序設(shè)計(jì)方法,而且還會(huì)用到一些前面沒(méi)有介紹的方法。目的是幫助大家進(jìn)一步熟悉C#的Windows程序設(shè)計(jì)方法。1. 程序目標(biāo)2. 界面設(shè)計(jì)3. 添加內(nèi)部處理類(lèi)4. 向SimpleChart類(lèi)中添加事件處理方法5.

溫馨提示

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

評(píng)論

0/150

提交評(píng)論