ch10 Windows應(yīng)用程序開(kāi)發(fā)_第1頁(yè)
ch10 Windows應(yīng)用程序開(kāi)發(fā)_第2頁(yè)
ch10 Windows應(yīng)用程序開(kāi)發(fā)_第3頁(yè)
ch10 Windows應(yīng)用程序開(kāi)發(fā)_第4頁(yè)
ch10 Windows應(yīng)用程序開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 第第1010章章 WindowsWindows應(yīng)用程序開(kāi)發(fā)應(yīng)用程序開(kāi)發(fā)本章要點(diǎn):本章要點(diǎn):l WindowsWindows窗體開(kāi)發(fā)基礎(chǔ)窗體開(kāi)發(fā)基礎(chǔ)l 常用常用WindowsWindows控件控件l WindowsWindows菜單設(shè)計(jì)菜單設(shè)計(jì)l 工具欄與狀態(tài)欄設(shè)計(jì)工具欄與狀態(tài)欄設(shè)計(jì)l 通用對(duì)話框編程通用對(duì)話框編程l GDI+GDI+編程編程面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.110.1 WindowsWindows窗體編程窗體編程 10.1.1 .NET F

2、ramework10.1.1 .NET Framework窗體編程相關(guān)基類窗體編程相關(guān)基類 .NET Framework.NET Framework提供了一系列與窗體編程相關(guān)的類,用來(lái)供開(kāi)發(fā)人員提供了一系列與窗體編程相關(guān)的類,用來(lái)供開(kāi)發(fā)人員使用。這些類主要包含于使用。這些類主要包含于System.Windows.FormsSystem.Windows.Forms命名空間中。其中與窗體命名空間中。其中與窗體和控件相關(guān)的基類見(jiàn)下表。和控件相關(guān)的基類見(jiàn)下表。類名稱類名稱簡(jiǎn)簡(jiǎn) 介介Object所有類的基類所有類的基類MarshalByRefObject允許在支持遠(yuǎn)程處理的應(yīng)用程序中跨應(yīng)用程序域邊界訪問(wèn)

3、允許在支持遠(yuǎn)程處理的應(yīng)用程序中跨應(yīng)用程序域邊界訪問(wèn)對(duì)象。對(duì)象。Component提供提供IComponentIComponent接口的基實(shí)現(xiàn)并啟用應(yīng)用程序之間的對(duì)象接口的基實(shí)現(xiàn)并啟用應(yīng)用程序之間的對(duì)象共享。共享。Control定義控件的基類,控件是帶有可視化表示形式的組件。定義控件的基類,控件是帶有可視化表示形式的組件。Form表示組成應(yīng)用程序的用戶界面的窗口或?qū)υ捒?。表示組成應(yīng)用程序的用戶界面的窗口或?qū)υ捒?。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.110.1 WindowsWindows窗體編程窗體編程 10.1.1 .NET Framewo

4、rk10.1.1 .NET Framework窗體編程相關(guān)基類窗體編程相關(guān)基類 相關(guān)類的繼承關(guān)系如下圖所示:相關(guān)類的繼承關(guān)系如下圖所示: ControlControl類為定義窗體及控件的基類。類為定義窗體及控件的基類。FormForm為窗體類,用來(lái)構(gòu)造窗體,為窗體類,用來(lái)構(gòu)造窗體,其他標(biāo)準(zhǔn)其他標(biāo)準(zhǔn)WindowsWindows控件類均派生于控件類均派生于ControlControl類類 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.110.1 WindowsWindows窗體編程窗體編程 10.1.2 10.1.2 添加添加WindowsWindows

5、窗體窗體 (1) (1) 使用使用Visual Studio 2005Visual Studio 2005開(kāi)發(fā)環(huán)境添加窗體開(kāi)發(fā)環(huán)境添加窗體 新建或打開(kāi)一個(gè)工程,右擊新建或打開(kāi)一個(gè)工程,右擊“解決方案管理器解決方案管理器”面板中的項(xiàng)目名稱,面板中的項(xiàng)目名稱,在彈出的快捷菜單中選擇在彈出的快捷菜單中選擇“添加添加”| |“新建項(xiàng)新建項(xiàng)”菜單項(xiàng),彈出菜單項(xiàng),彈出“添加新項(xiàng)添加新項(xiàng)”對(duì)話框,對(duì)話框, 在在“模板模板”欄中選擇欄中選擇“WindowsWindows窗體窗體”輸入相應(yīng)名稱,單擊輸入相應(yīng)名稱,單擊“確定確定”按鈕完成添加操作。該過(guò)程將自動(dòng)產(chǎn)生一些相關(guān)代碼,初學(xué)者可以暫時(shí)不按鈕完成添加操作。該

6、過(guò)程將自動(dòng)產(chǎn)生一些相關(guān)代碼,初學(xué)者可以暫時(shí)不去考慮這些內(nèi)容,最好也不要修改該部分代碼。去考慮這些內(nèi)容,最好也不要修改該部分代碼。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.110.1 WindowsWindows窗體編程窗體編程 10.1.2 10.1.2 添加添加WindowsWindows窗體窗體 (2) (2) 使用代碼創(chuàng)建窗體使用代碼創(chuàng)建窗體 使用代碼創(chuàng)建窗體需要由使用代碼創(chuàng)建窗體需要由FormForm類派生一個(gè)子類,然后實(shí)例化該派生類,類派生一個(gè)子類,然后實(shí)例化該派生類,完成窗體創(chuàng)建工作。示例代碼如下:完成窗體創(chuàng)建工作。示例代碼如下:pu

7、blic class Form1 : Formpublic class Form1 : Form public Form1() public Form1() InitializeComponent();/不要忘記這句話 this.Size = new Size(400,250); / this.Size = new Size(400,250); /設(shè)置窗體大小設(shè)置窗體大小 this.Text = this.Text = 使用代碼創(chuàng)建窗體使用代碼創(chuàng)建窗體; /; /設(shè)置窗體標(biāo)題設(shè)置窗體標(biāo)題 static void Main() static void Main() Application.Run

8、(new Form1(); / Application.Run(new Form1(); /使用使用newnew實(shí)例化一個(gè)實(shí)例化一個(gè)Form1Form1對(duì)象對(duì)象 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.110.1 WindowsWindows窗體編程窗體編程 10.1.3 10.1.3 添加控件添加控件 (1) (1) 使用使用Visual Studio 2005Visual Studio 2005開(kāi)發(fā)環(huán)境添加控件開(kāi)發(fā)環(huán)境添加控件 打開(kāi)打開(kāi)“工具欄工具欄”面板,講目標(biāo)控件拖入窗體中的合適位置即可。面板,講目標(biāo)控件拖入窗體中的合適位置即可。 (2

9、) (2) 使用代碼添加控件使用代碼添加控件 使用代碼在窗體中添加一個(gè)按鈕。使用代碼在窗體中添加一個(gè)按鈕。.NET Framework.NET Framework提供了提供了System.Windows.Forms.ButtonSystem.Windows.Forms.Button類供開(kāi)發(fā)人員實(shí)例化標(biāo)準(zhǔn)按鈕對(duì)象,因此類供開(kāi)發(fā)人員實(shí)例化標(biāo)準(zhǔn)按鈕對(duì)象,因此創(chuàng)建按鈕的過(guò)程既是由創(chuàng)建按鈕的過(guò)程既是由ButtonButton類實(shí)例化對(duì)象的過(guò)程。此時(shí),窗體被看作是類實(shí)例化對(duì)象的過(guò)程。此時(shí),窗體被看作是容器,包含按鈕控件,故設(shè)計(jì)時(shí)需將按鈕對(duì)象作為窗體類的一個(gè)成員。在容器,包含按鈕控件,故設(shè)計(jì)時(shí)需將按鈕對(duì)象作

10、為窗體類的一個(gè)成員。在實(shí)例化窗體對(duì)象的同時(shí)實(shí)例化按鈕對(duì)象,即可完成添加按鈕操作。實(shí)例化窗體對(duì)象的同時(shí)實(shí)例化按鈕對(duì)象,即可完成添加按鈕操作。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.110.1 WindowsWindows窗體編程窗體編程 10.1.4 10.1.4 布局控件布局控件 當(dāng)窗體需要包含有多個(gè)不同種類的控件時(shí),要要布置好各個(gè)控件的當(dāng)窗體需要包含有多個(gè)不同種類的控件時(shí),要要布置好各個(gè)控件的位置、大小及順序關(guān)系。即對(duì)各個(gè)控件進(jìn)行布局。可以使用以下四種屬性位置、大小及順序關(guān)系。即對(duì)各個(gè)控件進(jìn)行布局??梢允褂靡韵滤姆N屬性來(lái)布局控件:來(lái)布局控件:

11、 (1) Location(1) Location,設(shè)置控件相對(duì)于窗體左上角的,設(shè)置控件相對(duì)于窗體左上角的X X與與Y Y坐標(biāo);坐標(biāo); (2) Size(2) Size,設(shè)置控件本書(shū)的高度和寬度;,設(shè)置控件本書(shū)的高度和寬度; (3) Anchor(3) Anchor,把控件附著在窗體的一個(gè)或多個(gè)邊框上;,把控件附著在窗體的一個(gè)或多個(gè)邊框上; (4) Dock(4) Dock,設(shè)定控件相對(duì)于窗體某個(gè)邊框的??糠绞?。,設(shè)定控件相對(duì)于窗體某個(gè)邊框的??糠绞?。 LocationLocation及及SizeSize都使用絕對(duì)值來(lái)設(shè)定控件的位置與大小,當(dāng)窗體大小都使用絕對(duì)值來(lái)設(shè)定控件的位置與大小,當(dāng)窗體大

12、小改變時(shí),控件的大小及位置無(wú)法隨窗體的變化而自動(dòng)等比例的變化,造成改變時(shí),控件的大小及位置無(wú)法隨窗體的變化而自動(dòng)等比例的變化,造成布局的混亂。為了解決這個(gè)問(wèn)題,布局的混亂。為了解決這個(gè)問(wèn)題,C#C#為控件提供了為控件提供了DockDock屬性。屬性。DockDock屬性的屬性的取值于取值于DockStyleDockStyle枚舉類型成員枚舉類型成員 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.110.1 WindowsWindows窗體編程窗體編程 10.1.4 10.1.4 布局控件布局控件 成員名稱成員名稱說(shuō)說(shuō) 明明Bottom該控件的下邊緣停

13、靠在其包含控件的底部。該控件的下邊緣??吭谄浒丶牡撞俊ill控件的各個(gè)邊緣分別??吭谄浒丶母鱾€(gè)邊緣,并控件的各個(gè)邊緣分別停靠在其包含控件的各個(gè)邊緣,并且適當(dāng)調(diào)整大小。且適當(dāng)調(diào)整大小。Left該控件的左邊緣??吭谄浒丶淖筮吘?。該控件的左邊緣??吭谄浒丶淖筮吘?。None該控件未??俊#J(rèn)值)該控件未???。(默認(rèn)值)Right該控件的右邊緣停靠在其包含控件的右邊緣。該控件的右邊緣??吭谄浒丶挠疫吘?。Top該控件的上邊緣??吭谄浒丶捻敹恕T摽丶纳线吘壨?吭谄浒丶捻敹?。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10

14、.110.1 WindowsWindows窗體編程窗體編程 10.1.5 10.1.5 設(shè)置控件屬性設(shè)置控件屬性 選中目標(biāo)控件,在選中目標(biāo)控件,在“屬性面板屬性面板”中可以設(shè)置其對(duì)應(yīng)的屬性值。中可以設(shè)置其對(duì)應(yīng)的屬性值。 在代碼中可以利用如下方式設(shè)置控件的屬性:在代碼中可以利用如下方式設(shè)置控件的屬性: button1.Name = button1.Name = “button1button1” ; ; button1.Size = new Size(117,32); button1.Size = new Size(117,32); button1.Dock = DockStyle.Bottom;

15、 button1.Dock = DockStyle.Bottom; button1.Text = button1.Text = 第一個(gè)按鈕第一個(gè)按鈕; 其中,其中,button1button1為目標(biāo)控件為目標(biāo)控件IDID面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.110.1 WindowsWindows窗體編程窗體編程 10.1.6 10.1.6 響應(yīng)控件事件響應(yīng)控件事件 要使程序完成一定功能,需要響應(yīng)控件的特定事件,如單擊、移動(dòng)要使程序完成一定功能,需要響應(yīng)控件的特定事件,如單擊、移動(dòng)等。在等。在VS2005VS2005環(huán)境中,選中目標(biāo)控件,雙擊

16、,即可添加控件的環(huán)境中,選中目標(biāo)控件,雙擊,即可添加控件的clickclick事件,事件,并自動(dòng)切換到該事件的響應(yīng)函數(shù)中。并自動(dòng)切換到該事件的響應(yīng)函數(shù)中。 在代碼中添加如下內(nèi)容,即可完成響應(yīng)控件事件工作:在代碼中添加如下內(nèi)容,即可完成響應(yīng)控件事件工作: /響應(yīng)響應(yīng)ClickClick事件事件 button1.Click += new System.EventHandler ( button1_Click ) ;button1.Click += new System.EventHandler ( button1_Click ) ; 同時(shí),需要添加同時(shí),需要添加button1_Clickbutto

17、n1_Click方法,作為事件的響應(yīng)函數(shù)。方法,作為事件的響應(yīng)函數(shù)。 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.210.2 常用控件常用控件 10.2.1 10.2.1 標(biāo)簽和基于按鈕的控件標(biāo)簽和基于按鈕的控件 標(biāo)簽控件標(biāo)簽控件(Label)(Label)是工具箱中最簡(jiǎn)單的控件,通常用來(lái)顯示一些描述是工具箱中最簡(jiǎn)單的控件,通常用來(lái)顯示一些描述性文字。且顯示內(nèi)容通常在其聲明周期內(nèi)固定不變。性文字。且顯示內(nèi)容通常在其聲明周期內(nèi)固定不變。LabelLabel控件的最常用控件的最常用屬性為屬性為T(mén)extText屬性,用來(lái)指定在屬性,用來(lái)指定在LabelL

18、abel控件中顯示的內(nèi)容,可以通過(guò)設(shè)置控件中顯示的內(nèi)容,可以通過(guò)設(shè)置LabelLabel控件的控件的ColorColor、FontFont、StyleStyle等屬性來(lái)改變顯示的效果。等屬性來(lái)改變顯示的效果。 .NET.NET支持三種類型的按鈕:按鈕、單選框以及復(fù)選框,這三種按鈕都支持三種類型的按鈕:按鈕、單選框以及復(fù)選框,這三種按鈕都繼承于繼承于ButtonBaseButtonBase類。三種按鈕分別對(duì)應(yīng)于類。三種按鈕分別對(duì)應(yīng)于ButtonButton、CheckBoxCheckBox、RadioBoxRadioBox類,這些類包含于類,這些類包含于System.Windows.FormsS

19、ystem.Windows.Forms命名空間中。命名空間中。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.210.2 常用控件常用控件 10.2.1 10.2.1 標(biāo)簽和基于按鈕的控件標(biāo)簽和基于按鈕的控件 (1) button(1) button控件控件 按鈕控件按鈕控件(Button)(Button)允許用戶通過(guò)單擊來(lái)執(zhí)行操作。當(dāng)用戶單擊按鈕時(shí),允許用戶通過(guò)單擊來(lái)執(zhí)行操作。當(dāng)用戶單擊按鈕時(shí),即調(diào)用即調(diào)用ClickClick事件處理程序??蓪⒋a放入事件處理程序??蓪⒋a放入ClickClick事件處理程序來(lái)執(zhí)行所選事件處理程序來(lái)執(zhí)行所選擇的任意操

20、作。擇的任意操作。 按鈕上顯示的文本由按鈕上顯示的文本由TextText屬性指定。如果文本超出按鈕寬度,則換到屬性指定。如果文本超出按鈕寬度,則換到下一行。但是,如果控件無(wú)法容納文本的總體高度,則將剪裁文本。按鈕下一行。但是,如果控件無(wú)法容納文本的總體高度,則將剪裁文本。按鈕(Button)(Button)控件還可以使用控件還可以使用ImageImage和和ImageListImageList屬性顯示圖像屬性顯示圖像 (2) (2) 單選框和復(fù)選框控件單選框和復(fù)選框控件 二者都允許用戶從一系列的選項(xiàng)中選擇,差別在于在一系列選項(xiàng)中單二者都允許用戶從一系列的選項(xiàng)中選擇,差別在于在一系列選項(xiàng)中單選框

21、之間是選框之間是“互斥互斥”的,即只能有一個(gè)被選中;各個(gè)復(fù)選框選項(xiàng)之間相互的,即只能有一個(gè)被選中;各個(gè)復(fù)選框選項(xiàng)之間相互無(wú)影響,即可有多個(gè)被選中。無(wú)影響,即可有多個(gè)被選中。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.210.2 常用控件常用控件 10.2.2 10.2.2 文本框控件文本框控件 文本框控件負(fù)責(zé)為用戶提供一個(gè)編輯數(shù)據(jù)的接口,也可以用來(lái)顯示數(shù)文本框控件負(fù)責(zé)為用戶提供一個(gè)編輯數(shù)據(jù)的接口,也可以用來(lái)顯示數(shù)據(jù)。據(jù)。.NET Frameword.NET Frameword提供了提供了TextBoxBaseTextBoxBase類支持文本框操作。

22、該類為抽象類支持文本框操作。該類為抽象類,由其派生的兩個(gè)子類為:類,由其派生的兩個(gè)子類為:TextBoxTextBox和和RichTextBoxRichTextBox分別對(duì)應(yīng)于分別對(duì)應(yīng)于TextBoxTextBox和和RichTextBoxRichTextBox控件控件 10.2.3 10.2.3 列表框控件列表框控件 列表控件用于向用戶提供多選擇項(xiàng)的動(dòng)態(tài)列別。列表控件用于向用戶提供多選擇項(xiàng)的動(dòng)態(tài)列別。C#C#提供了兩種類型的提供了兩種類型的列表控件:列表控件:ListBoxListBox控件和控件和ComboBoxComboBox控件,二者都可以完成列表選擇任務(wù),控件,二者都可以完成列表選擇

23、任務(wù),但各有自己的屬性。二者均由但各有自己的屬性。二者均由ListControlListControl基類派生而來(lái),基類派生而來(lái),ListControlListControl類類繼承于繼承于ControlControl類。其中,類。其中, ListBoxListBox控件控件列表框列表框(ListBox)(ListBox)用于在滾動(dòng)的窗口顯示一系列的條目。如果列表框中的用于在滾動(dòng)的窗口顯示一系列的條目。如果列表框中的條目多于在一個(gè)窗口中所能容納的數(shù)目,則自動(dòng)添加滾動(dòng)條條目多于在一個(gè)窗口中所能容納的數(shù)目,則自動(dòng)添加滾動(dòng)條 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)

24、測(cè)繪學(xué)院 10.210.2 常用控件常用控件 10.2.3 10.2.3 列表框控件列表框控件 ComboBoxComboBox列表框控件顯示與一個(gè)列表框控件顯示與一個(gè)ListBoxListBox組合的編輯字段,使用戶可組合的編輯字段,使用戶可以從列表中選擇或輸入新文本。以從列表中選擇或輸入新文本。ComboBoxComboBox的默認(rèn)行為是顯示一個(gè)編輯字段,的默認(rèn)行為是顯示一個(gè)編輯字段,該字段附帶一個(gè)隱藏的下拉列表。該字段附帶一個(gè)隱藏的下拉列表。DropDownStyleDropDownStyle屬性確定要顯示的組合屬性確定要顯示的組合框的樣式??梢暂斎胍粋€(gè)值,該值指示允許以下情況:簡(jiǎn)單的下

25、拉列表框的樣式??梢暂斎胍粋€(gè)值,該值指示允許以下情況:簡(jiǎn)單的下拉列表(始終顯示列表)、下拉列表框(文本部分不可編輯,并且必須選擇一個(gè)(始終顯示列表)、下拉列表框(文本部分不可編輯,并且必須選擇一個(gè)箭頭才能查看下拉列表框)或默認(rèn)下拉列表框(文本部分可編輯,并且用箭頭才能查看下拉列表框)或默認(rèn)下拉列表框(文本部分可編輯,并且用戶必須按箭頭鍵才能查看列表)。若要始終顯示用戶不能編輯的列表,建戶必須按箭頭鍵才能查看列表)。若要始終顯示用戶不能編輯的列表,建議使用議使用ListBoxListBox控件??丶?面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.21

26、0.2 常用控件常用控件 10.2.4 10.2.4 日期時(shí)間相關(guān)控件日期時(shí)間相關(guān)控件 在在WindowsWindows應(yīng)用程序中日期時(shí)間相關(guān)控件是必不可少的。相關(guān)控件包應(yīng)用程序中日期時(shí)間相關(guān)控件是必不可少的。相關(guān)控件包括定時(shí)器括定時(shí)器TimerTimer控件、控件、DateTimePickerDateTimePicker控件以及控件以及MonthCalendarMonthCalendar控件??丶?。 (1) Timer(1) Timer控件控件 定時(shí)器定時(shí)器(Timer)(Timer)控件用于以用戶定義的事件間隔觸發(fā)事件??丶糜谝杂脩舳x的事件間隔觸發(fā)事件。WindowsWindows計(jì)計(jì)

27、時(shí)器是為單線程環(huán)境設(shè)計(jì)的,其中,時(shí)器是為單線程環(huán)境設(shè)計(jì)的,其中,UIUI線程用于執(zhí)行處理。它要求用戶代線程用于執(zhí)行處理。它要求用戶代碼有一個(gè)可用的碼有一個(gè)可用的UIUI消息泵,而且總是在同一個(gè)線程中操作,或者將調(diào)用封消息泵,而且總是在同一個(gè)線程中操作,或者將調(diào)用封送到另一個(gè)線程。送到另一個(gè)線程。 當(dāng)當(dāng)EnabledEnabled屬性設(shè)置為屬性設(shè)置為truetrue且且IntervalInterval屬性大于屬性大于0 0時(shí),將引發(fā)時(shí),將引發(fā)TickTick事件,事件,引發(fā)的時(shí)間間隔由引發(fā)的時(shí)間間隔由IntervalInterval屬性控制,該屬性以毫秒為單位。若應(yīng)用程序?qū)傩钥刂疲搶傩砸院撩霝?/p>

28、單位。若應(yīng)用程序中實(shí)現(xiàn)了一個(gè)定時(shí)器,在程序執(zhí)行結(jié)束時(shí)需要調(diào)用中實(shí)現(xiàn)了一個(gè)定時(shí)器,在程序執(zhí)行結(jié)束時(shí)需要調(diào)用Dispose()Dispose()方法,釋放方法,釋放系統(tǒng)資源。系統(tǒng)資源。 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.210.2 常用控件常用控件 10.2.4 10.2.4 日期時(shí)間相關(guān)控件日期時(shí)間相關(guān)控件 (2) DataTimerPick(2) DataTimerPick控件控件 DateTimePickerDateTimePicker控件用來(lái)讓用戶選擇日期和時(shí)間,以及按指定的格式控件用來(lái)讓用戶選擇日期和時(shí)間,以及按指定的格式顯示此日期

29、顯示此日期/ /時(shí)間。通過(guò)設(shè)置時(shí)間。通過(guò)設(shè)置MinDateMinDate和和MaxDateMaxDate屬性,可以限制可選擇的屬性,可以限制可選擇的日期和時(shí)間。日期和時(shí)間。DataTimePickerDataTimePicker控件類繼承于控件類繼承于ControlControl類類 . . (3) MonthCalendar (3) MonthCalendar控件控件 MonthCalendarMonthCalendar控件與控件與DateTimePickerDateTimePicker控件類似,控件類似, 顯示效果與顯示效果與DateTimePickerDateTimePicker控件使用

30、的下拉式控件使用的下拉式 日歷一致,如圖所示:日歷一致,如圖所示: 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.210.2 常用控件常用控件 10.2.5 TreeView10.2.5 TreeView與與ListView ListView (1) TreeView (1) TreeView控件控件 TreeViewTreeView控件利用層次結(jié)構(gòu)向用戶展示一系列相關(guān)信息。利用控件利用層次結(jié)構(gòu)向用戶展示一系列相關(guān)信息。利用TreeViewTreeView控件,可以把相關(guān)信息組織成易于管理的塊。在控件,可以把相關(guān)信息組織成易于管理的塊。在TreeVi

31、ewTreeView控件中控件中顯示的每個(gè)數(shù)據(jù)項(xiàng)(節(jié)點(diǎn))都對(duì)應(yīng)于一個(gè)顯示的每個(gè)數(shù)據(jù)項(xiàng)(節(jié)點(diǎn))都對(duì)應(yīng)于一個(gè)TreeNodeTreeNode對(duì)象。該對(duì)象的對(duì)象。該對(duì)象的NodesNodes屬性為一個(gè)集合,包含該對(duì)象下屬的所有子節(jié)點(diǎn)。利用集合的相關(guān)操作如屬性為一個(gè)集合,包含該對(duì)象下屬的所有子節(jié)點(diǎn)。利用集合的相關(guān)操作如Add()Add()、Remove()Remove()等可以對(duì)一個(gè)節(jié)點(diǎn)所包含子節(jié)點(diǎn)進(jìn)行編輯。等可以對(duì)一個(gè)節(jié)點(diǎn)所包含子節(jié)點(diǎn)進(jìn)行編輯。 TreeViewTreeView控件中每個(gè)節(jié)點(diǎn)都有一個(gè)標(biāo)題和兩個(gè)可選圖像,這兩個(gè)圖像控件中每個(gè)節(jié)點(diǎn)都有一個(gè)標(biāo)題和兩個(gè)可選圖像,這兩個(gè)圖像分別用來(lái)圖形化節(jié)點(diǎn)的

32、選中或未被選中狀態(tài),使用圖像需分別用來(lái)圖形化節(jié)點(diǎn)的選中或未被選中狀態(tài),使用圖像需ImageListImageList控件控件支持。由支持。由WindowsWindows資源管理器可知,在運(yùn)行時(shí)資源管理器可知,在運(yùn)行時(shí)TreeViewTreeView控件的層次結(jié)構(gòu)中控件的層次結(jié)構(gòu)中任何節(jié)點(diǎn)都可以擴(kuò)展或收縮顯示或隱藏它的子節(jié)點(diǎn)。任何節(jié)點(diǎn)都可以擴(kuò)展或收縮顯示或隱藏它的子節(jié)點(diǎn)。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.210.2 常用控件常用控件 10.2.5 TreeView10.2.5 TreeView與與ListView ListView (2)

33、ListView (2) ListView控件控件 ListViewListView控件用來(lái)顯示項(xiàng)列表,這些項(xiàng)帶有項(xiàng)文本和圖標(biāo)(可選)來(lái)控件用來(lái)顯示項(xiàng)列表,這些項(xiàng)帶有項(xiàng)文本和圖標(biāo)(可選)來(lái)標(biāo)識(shí)項(xiàng)的類型。例如,標(biāo)識(shí)項(xiàng)的類型。例如,WindowsWindows資源管理器的文件列表就與資源管理器的文件列表就與ListViewListView控件控件的外觀相似。的外觀相似。ListViewItemListViewItem類表示類表示ListViewListView控件中的項(xiàng)。列表中顯示的項(xiàng)控件中的項(xiàng)。列表中顯示的項(xiàng)可以用四種不同視圖顯示,分別為:使用大圖標(biāo)、使用小圖標(biāo)、作為一個(gè)可以用四種不同視圖顯示,

34、分別為:使用大圖標(biāo)、使用小圖標(biāo)、作為一個(gè)列表、作為一個(gè)表格等。列表、作為一個(gè)表格等。 ListViewListView可以使用可以使用CheckBoxesCheckBoxes屬性顯示復(fù)選框,以使用戶可以選中要屬性顯示復(fù)選框,以使用戶可以選中要對(duì)其執(zhí)行操作的項(xiàng)??梢杂酶鞣N方式來(lái)使用對(duì)其執(zhí)行操作的項(xiàng)??梢杂酶鞣N方式來(lái)使用ListViewListView控件??丶捎糜陲@控件??丶捎糜陲@示來(lái)自應(yīng)用程序、數(shù)據(jù)庫(kù)或文本文件的信息。示來(lái)自應(yīng)用程序、數(shù)據(jù)庫(kù)或文本文件的信息。 ListViewListView提供了大量可靈活設(shè)置外觀和行為的屬性。提供了大量可靈活設(shè)置外觀和行為的屬性。ItemsItems屬性

35、允許屬性允許開(kāi)發(fā)人員訪問(wèn)控件的開(kāi)發(fā)人員訪問(wèn)控件的ListView.ListViewItemCollectionListView.ListViewItemCollection,它提供在控件,它提供在控件中操作項(xiàng)的方法。如果需要允許用戶編輯項(xiàng)的文本,可使用中操作項(xiàng)的方法。如果需要允許用戶編輯項(xiàng)的文本,可使用LabelEditLabelEdit屬屬性。要確定其子項(xiàng)被單擊的項(xiàng),可使用性。要確定其子項(xiàng)被單擊的項(xiàng),可使用GetItemAtGetItemAt方法。方法。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.210.2 常用控件常用控件 10.2.6 Tab

36、Control10.2.6 TabControl控件控件 TabControlTabControl控件包含一個(gè)或多個(gè)選項(xiàng)卡頁(yè),每個(gè)選項(xiàng)卡頁(yè)由一個(gè)控件包含一個(gè)或多個(gè)選項(xiàng)卡頁(yè),每個(gè)選項(xiàng)卡頁(yè)由一個(gè)TabPageTabPage對(duì)象表示。由對(duì)象表示。由TabControlTabControl控件的控件的ControlsControls屬性集合來(lái)編輯控制這屬性集合來(lái)編輯控制這些選項(xiàng)卡頁(yè)。每個(gè)些選項(xiàng)卡頁(yè)。每個(gè)TabPageTabPage都保持著屬于自己的一組控件。類似普通控件,都保持著屬于自己的一組控件。類似普通控件,可以使用拖動(dòng)方式將目標(biāo)控件拖入特定可以使用拖動(dòng)方式將目標(biāo)控件拖入特定TabPageTabP

37、age中,當(dāng)單擊選項(xiàng)卡時(shí)這些中,當(dāng)單擊選項(xiàng)卡時(shí)這些控件被顯示出來(lái)??丶伙@示出來(lái)。 10.2.7 Splitter10.2.7 Splitter控件控件 splittersplitter控件用于在運(yùn)行時(shí)調(diào)整??靠丶拇笮?。如果一個(gè)控件可由控件用于在運(yùn)行時(shí)調(diào)整??靠丶拇笮?。如果一個(gè)控件可由splittersplitter控件調(diào)整其大小,則當(dāng)用戶將鼠標(biāo)指針指向該控件的未??康倪吙丶{(diào)整其大小,則當(dāng)用戶將鼠標(biāo)指針指向該控件的未停靠的邊緣時(shí),鼠標(biāo)指針將更改外觀,指示該控件的大小是可以調(diào)整的。拆分控件緣時(shí),鼠標(biāo)指針將更改外觀,指示該控件的大小是可以調(diào)整的。拆分控件允許用戶調(diào)整該控件緊前面的??靠丶拇?/p>

38、小。因此,為使用戶能夠在運(yùn)允許用戶調(diào)整該控件緊前面的??靠丶拇笮?。因此,為使用戶能夠在運(yùn)行時(shí)調(diào)整??靠丶拇笮?,請(qǐng)將要調(diào)整大小的控件停靠在容器的一條邊緣行時(shí)調(diào)整??靠丶拇笮。?qǐng)將要調(diào)整大小的控件??吭谌萜鞯囊粭l邊緣上,然后將拆分控件停靠在該容器的同一側(cè)。上,然后將拆分控件??吭谠撊萜鞯耐粋?cè)。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.210.2 常用控件常用控件 10.2.8 10.2.8 控件排版控件排版 在窗體中拖入多個(gè)控件后,可以使用在窗體中拖入多個(gè)控件后,可以使用Visual Studio 2005Visual Studio 2005

39、的格式化控的格式化控件功能排版控件件功能排版控件 。按住。按住“CtrlCtrl”鍵,使用鼠標(biāo)同時(shí)選中多個(gè)控件,此時(shí)鍵,使用鼠標(biāo)同時(shí)選中多個(gè)控件,此時(shí)Visual Studio 2005Visual Studio 2005的的“布局布局”工具欄變?yōu)楣ぞ邫谧優(yōu)椤翱捎每捎谩睜顟B(tài),如下圖所示。狀態(tài),如下圖所示。 將鼠標(biāo)移動(dòng)到特定按鈕上,停留片刻后將鼠標(biāo)移動(dòng)到特定按鈕上,停留片刻后Visual StudioVisual Studio自動(dòng)給出該按自動(dòng)給出該按鈕的提示。讀者可任意選擇布局按鈕,觀察各個(gè)按鈕的效果。使用布局工鈕的提示。讀者可任意選擇布局按鈕,觀察各個(gè)按鈕的效果。使用布局工具欄結(jié)合控件的具欄結(jié)

40、合控件的DockDock及及AnchorAnchor屬性可以達(dá)到合理、美觀的界面效果。屬性可以達(dá)到合理、美觀的界面效果。 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.310.3 菜單設(shè)計(jì)菜單設(shè)計(jì) .NET Framework .NET Framework類庫(kù)提供了一系列支持菜單操作的類,包括:類庫(kù)提供了一系列支持菜單操作的類,包括:MenuMenu、MainMenuMainMenu、MenuItemMenuItem和和ContextMenuContextMenu,其中,其中MenuMenu類為另三個(gè)類的父類,該類為另三個(gè)類的父類,該類為抽象基類,不

41、能實(shí)例化。應(yīng)用程序的菜單由類為抽象基類,不能實(shí)例化。應(yīng)用程序的菜單由MenuItemMenuItem對(duì)象組成。對(duì)象組成。MenuItemMenuItem對(duì)象可存儲(chǔ)在對(duì)象可存儲(chǔ)在MainMenuMainMenu中,以顯示為窗體的整個(gè)菜單結(jié)構(gòu),也可中,以顯示為窗體的整個(gè)菜單結(jié)構(gòu),也可以用作快捷菜單的以用作快捷菜單的ContextMenuContextMenu,MenuItemMenuItemMenuItemMenuItem可以嵌套但不能獨(dú)立可以嵌套但不能獨(dú)立使用。使用。10.3.1 10.3.1 在在VS2005VS2005中添加菜單中添加菜單 過(guò)程如下:過(guò)程如下: (1) (1) 打開(kāi)打開(kāi)Vis

42、ual Studio 2005Visual Studio 2005開(kāi)發(fā)環(huán)境,創(chuàng)建基于開(kāi)發(fā)環(huán)境,創(chuàng)建基于C#C#的的WindowsWindows應(yīng)用應(yīng)用程序;程序; (2) (2) 打開(kāi)工具箱,定位到打開(kāi)工具箱,定位到 欄,將欄,將 控件拖入默認(rèn)窗控件拖入默認(rèn)窗體中;體中; (3) (3) 單擊窗體中該控件,添加菜單項(xiàng)單擊窗體中該控件,添加菜單項(xiàng)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.310.3 菜單設(shè)計(jì)菜單設(shè)計(jì) 10.3.1 10.3.1 在在VS2005VS2005中添加菜單中添加菜單 過(guò)程如下:過(guò)程如下: (4) (4) 添加快捷鍵添加快捷

43、鍵 選中選中“打開(kāi)打開(kāi)”菜單項(xiàng),在菜單項(xiàng),在“屬性屬性”面板中設(shè)置面板中設(shè)置ShortCutKeysShortCutKeys屬性,如屬性,如下圖所示:下圖所示:面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.310.3 菜單設(shè)計(jì)菜單設(shè)計(jì) 10.3.1 10.3.1 在在VS2005VS2005中添加菜單中添加菜單 過(guò)程如下:過(guò)程如下: (5)(5)添加響應(yīng)事件添加響應(yīng)事件 雙擊雙擊“打開(kāi)打開(kāi)”菜單項(xiàng),開(kāi)發(fā)環(huán)境自定定位到菜單項(xiàng),開(kāi)發(fā)環(huán)境自定定位到Form1.csForm1.cs,并自定添加相,并自定添加相關(guān)框架代碼,在指定的位置輸入如下代碼:關(guān)框架代碼,

44、在指定的位置輸入如下代碼: MessageBox.Show(MessageBox.Show(“響應(yīng)菜單響應(yīng)菜單ClickClick事件事件! !”);); 輸出效果如下圖所示:輸出效果如下圖所示:面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.310.3 菜單設(shè)計(jì)菜單設(shè)計(jì) 10.3.2 MainMenu10.3.2 MainMenu類類 .NET Framework.NET Framework類庫(kù)提供了類庫(kù)提供了MainMenuMainMenu類來(lái)支持主菜單操作。類來(lái)支持主菜單操作。MainMenuMainMenu控件表示窗體菜單結(jié)構(gòu)的容器。菜單由表示

45、菜單結(jié)構(gòu)中單個(gè)菜單命令的控件表示窗體菜單結(jié)構(gòu)的容器。菜單由表示菜單結(jié)構(gòu)中單個(gè)菜單命令的MenuItemMenuItem對(duì)象組成。每個(gè)對(duì)象組成。每個(gè)MenuItemMenuItem可以成為應(yīng)用程序的命令或其他子菜單可以成為應(yīng)用程序的命令或其他子菜單項(xiàng)的父菜單。若要將項(xiàng)的父菜單。若要將MainMenuMainMenu綁定到將顯示它的綁定到將顯示它的FormForm,需要將,需要將FormForm的的MenuMenu屬性與特定屬性與特定MainMenuMainMenu對(duì)象進(jìn)行關(guān)聯(lián)對(duì)象進(jìn)行關(guān)聯(lián) 將一個(gè)空的將一個(gè)空的MainMenuMainMenu與窗體關(guān)聯(lián)后不會(huì)顯示任何與菜單相關(guān)內(nèi)容,也與窗體關(guān)聯(lián)后不

46、會(huì)顯示任何與菜單相關(guān)內(nèi)容,也不會(huì)占據(jù)任何窗體控件。只有與窗體進(jìn)行關(guān)聯(lián)的不會(huì)占據(jù)任何窗體控件。只有與窗體進(jìn)行關(guān)聯(lián)的MainMenuMainMenu的的MenuItemsMenuItems屬屬性集合包含一定的菜單項(xiàng)時(shí)才能顯示出菜單的效果。性集合包含一定的菜單項(xiàng)時(shí)才能顯示出菜單的效果。 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.310.3 菜單設(shè)計(jì)菜單設(shè)計(jì) 10.3.3 MenuItem10.3.3 MenuItem類類 MenuItemMenuItem(菜單項(xiàng))是構(gòu)成菜單的基本元素,一個(gè)不包含菜單項(xiàng)的主(菜單項(xiàng))是構(gòu)成菜單的基本元素,一個(gè)不包含菜單項(xiàng)

47、的主菜單是沒(méi)有任何意義的。一個(gè)主菜單的菜單項(xiàng)由菜單是沒(méi)有任何意義的。一個(gè)主菜單的菜單項(xiàng)由MenuItemsMenuItems屬性指定,該屬性指定,該屬性為一個(gè)集合,繼承與屬性為一個(gè)集合,繼承與MenuMenu類,所有的菜單及菜單項(xiàng)都擁有該屬性。即:類,所有的菜單及菜單項(xiàng)都擁有該屬性。即:不僅主菜單有菜單項(xiàng),菜單項(xiàng)本身也可以包含菜單項(xiàng),這就構(gòu)成了菜單項(xiàng)不僅主菜單有菜單項(xiàng),菜單項(xiàng)本身也可以包含菜單項(xiàng),這就構(gòu)成了菜單項(xiàng)的嵌套。的嵌套。MenuItemMenuItem類提供用以配置菜單項(xiàng)的外觀和功能的屬性。若要顯示類提供用以配置菜單項(xiàng)的外觀和功能的屬性。若要顯示菜單項(xiàng)旁邊的選中標(biāo)記,則需要使用菜單項(xiàng)旁

48、邊的選中標(biāo)記,則需要使用CheckedChecked屬性??墒褂迷摴δ軄?lái)標(biāo)識(shí)屬性??墒褂迷摴δ軄?lái)標(biāo)識(shí)在互斥的菜單項(xiàng)列表中選擇的菜單項(xiàng)。在互斥的菜單項(xiàng)列表中選擇的菜單項(xiàng)。 對(duì)于在多文檔界面對(duì)于在多文檔界面(MDI)(MDI)應(yīng)用程序中顯示的應(yīng)用程序中顯示的MenuItemMenuItem對(duì)象,可使用對(duì)象,可使用MergeMenuMergeMenu方法將方法將MDIMDI父級(jí)菜單與其子窗體菜單合并以創(chuàng)建合并的菜單結(jié)構(gòu)。父級(jí)菜單與其子窗體菜單合并以創(chuàng)建合并的菜單結(jié)構(gòu)。因?yàn)闊o(wú)法同時(shí)在多個(gè)位置重用因?yàn)闊o(wú)法同時(shí)在多個(gè)位置重用MenuItemMenuItem(如在(如在MainMenuMainMenu和和C

49、ontextMenuContextMenu中),所以可以使用中),所以可以使用CloneMenuCloneMenu方法創(chuàng)建可用于其他位置的方法創(chuàng)建可用于其他位置的MenuItemMenuItem的副的副本。本。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.310.3 菜單設(shè)計(jì)菜單設(shè)計(jì) 10.3.4 ContextMenu10.3.4 ContextMenu類類 C#C#提供提供ContextMenuContextMenu類支持上下文菜單,該類繼承于類支持上下文菜單,該類繼承于MenuMenu類。類。ContextMenuContextMenu類表示當(dāng)

50、用戶在控件或窗體的特定區(qū)域上單擊鼠標(biāo)右鍵時(shí)會(huì)類表示當(dāng)用戶在控件或窗體的特定區(qū)域上單擊鼠標(biāo)右鍵時(shí)會(huì)顯示的快捷菜單??旖莶藛瓮ǔS糜诮M合來(lái)自窗體的一個(gè)顯示的快捷菜單??旖莶藛瓮ǔS糜诮M合來(lái)自窗體的一個(gè)MainMenuMainMenu的不同的不同菜單項(xiàng),便于用戶在給定應(yīng)用程序上下文中使用。例如,可以使用分配給菜單項(xiàng),便于用戶在給定應(yīng)用程序上下文中使用。例如,可以使用分配給TextBoxTextBox控件的快捷菜單提供菜單項(xiàng),以便更改文本字體,在控件中查找控件的快捷菜單提供菜單項(xiàng),以便更改文本字體,在控件中查找文本或?qū)崿F(xiàn)復(fù)制和粘貼文本的剪貼版功能。還可以在快捷菜單中顯示不位文本或?qū)崿F(xiàn)復(fù)制和粘貼文本的剪

51、貼版功能。還可以在快捷菜單中顯示不位于于MainMenuMainMenu中的新的中的新的MenuItemMenuItem對(duì)象,這些對(duì)象提供與特定情況有關(guān)而不適對(duì)象,這些對(duì)象提供與特定情況有關(guān)而不適合在合在MainMenuMainMenu中顯示的命令。中顯示的命令。 當(dāng)用戶在控件或窗體本身上單擊鼠標(biāo)右鍵時(shí),通常會(huì)顯示快捷菜單。當(dāng)用戶在控件或窗體本身上單擊鼠標(biāo)右鍵時(shí),通常會(huì)顯示快捷菜單??梢暱丶涂梢暱丶虵ormForm有有ContextMenuContextMenu屬性,該屬性可將屬性,該屬性可將ContextMenuContextMenu類綁定到顯類綁定到顯示快捷菜單的控件。多個(gè)控件可使用一

52、個(gè)示快捷菜單的控件。多個(gè)控件可使用一個(gè)ContextMenuContextMenu。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.310.3 菜單設(shè)計(jì)菜單設(shè)計(jì) 10.3.5 10.3.5 處理菜單事件處理菜單事件 菜單設(shè)計(jì)完成后,需要為菜單添加響應(yīng)事件使菜單具有一定的功能。添菜單設(shè)計(jì)完成后,需要為菜單添加響應(yīng)事件使菜單具有一定的功能。添加菜單響應(yīng)事件的過(guò)程類似于普通控件的響應(yīng)事件。過(guò)程如下:加菜單響應(yīng)事件的過(guò)程類似于普通控件的響應(yīng)事件。過(guò)程如下: (1) (1) 雙擊雙擊“打開(kāi)打開(kāi)”菜單項(xiàng),為其加上響應(yīng)菜單項(xiàng),為其加上響應(yīng)ClickClick事件代碼

53、:事件代碼:sumitem2.Click += new System.EventHandler(this.sumitem2_click);sumitem2.Click += new System.EventHandler(this.sumitem2_click); (2) (2)在類中加入在類中加入ClickClick事件響應(yīng)函數(shù):事件響應(yīng)函數(shù): private void sumitem2_click(object sender, EventArgs e)private void sumitem2_click(object sender, EventArgs e) MessageBox.Sho

54、w( MessageBox.Show(響應(yīng)菜單響應(yīng)菜單ClickClick事件事件!)!) 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.410.4 工具欄與狀態(tài)欄工具欄與狀態(tài)欄 10.4.1 10.4.1 添加工具欄添加工具欄 工具欄中包含了一組用于執(zhí)行命令的按鈕,每個(gè)按鈕都用一張形象的工具欄中包含了一組用于執(zhí)行命令的按鈕,每個(gè)按鈕都用一張形象的圖片來(lái)表示。當(dāng)用戶單擊某個(gè)按鈕時(shí),會(huì)產(chǎn)生一個(gè)相應(yīng)的消息,對(duì)該消息圖片來(lái)表示。當(dāng)用戶單擊某個(gè)按鈕時(shí),會(huì)產(chǎn)生一個(gè)相應(yīng)的消息,對(duì)該消息進(jìn)行處理就是按鈕的功能實(shí)現(xiàn)。進(jìn)行處理就是按鈕的功能實(shí)現(xiàn)。 通常情況下,一個(gè)工具

55、欄按鈕會(huì)對(duì)應(yīng)于某一項(xiàng)菜單默認(rèn)狀態(tài)下,工具通常情況下,一個(gè)工具欄按鈕會(huì)對(duì)應(yīng)于某一項(xiàng)菜單默認(rèn)狀態(tài)下,工具欄位于框架窗口客戶區(qū)的上方。根據(jù)不同工具欄的具體特性,會(huì)有不同的欄位于框架窗口客戶區(qū)的上方。根據(jù)不同工具欄的具體特性,會(huì)有不同的狀態(tài)。一個(gè)應(yīng)用程序可以包含多個(gè)工具欄。狀態(tài)。一個(gè)應(yīng)用程序可以包含多個(gè)工具欄。.NET Framework.NET Framework提供了提供了ToolBarToolBar類支持工具欄的相關(guān)操作,該類繼承于類支持工具欄的相關(guān)操作,該類繼承于ControlControl類。工具欄上的各類。工具欄上的各個(gè)按鈕被封裝到個(gè)按鈕被封裝到ToolBarToolBar類的類的Butt

56、onsButtons屬性內(nèi),該屬性為集合。通過(guò)集合操屬性內(nèi),該屬性為集合。通過(guò)集合操作完成對(duì)工具欄中各個(gè)工具按鈕的控制。作完成對(duì)工具欄中各個(gè)工具按鈕的控制。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.410.4 工具欄與狀態(tài)欄工具欄與狀態(tài)欄 10.4.1 10.4.1 添加工具欄添加工具欄 添加工具欄的步驟如下:添加工具欄的步驟如下: (1)(1)在窗體中添加一個(gè)工具欄控件在窗體中添加一個(gè)工具欄控件 打開(kāi)打開(kāi)Visual Studio 2005Visual Studio 2005開(kāi)發(fā)環(huán)境,新建基于開(kāi)發(fā)環(huán)境,新建基于C#C#的的WindowsWind

57、ows應(yīng)用程序。應(yīng)用程序。打開(kāi)工具箱,定位到打開(kāi)工具箱,定位到 欄,將欄,將 控件拖入默認(rèn)窗體控件拖入默認(rèn)窗體Form1Form1中,中, (2)(2)添加工具按鈕添加工具按鈕 單擊工具欄控件中單擊工具欄控件中 圖標(biāo),在彈出的下拉菜單選擇框中選擇圖標(biāo),在彈出的下拉菜單選擇框中選擇“ButtonButton”項(xiàng),完成后即向工具欄控件中添加一個(gè)按鈕,選中該按鈕,可項(xiàng),完成后即向工具欄控件中添加一個(gè)按鈕,選中該按鈕,可設(shè)置其相關(guān)屬性。常用屬性有:設(shè)置其相關(guān)屬性。常用屬性有:l ImageImage:指定顯示的圖標(biāo);:指定顯示的圖標(biāo);l TextText:鼠標(biāo)停留在該按鈕時(shí)顯示的提示性文字;:鼠標(biāo)停留

58、在該按鈕時(shí)顯示的提示性文字;l DisplayStyleDisplayStyle:顯示樣式。:顯示樣式。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大學(xué)測(cè)繪學(xué)院 10.410.4 工具欄與狀態(tài)欄工具欄與狀態(tài)欄 10.4.2 10.4.2 響應(yīng)工具欄事件響應(yīng)工具欄事件 雙擊工具欄中按鈕雙擊工具欄中按鈕Visual Studio 2005Visual Studio 2005自動(dòng)添加該工具按鈕的自動(dòng)添加該工具按鈕的ClickClick事件響應(yīng)函數(shù)。雙擊事件響應(yīng)函數(shù)。雙擊“新建新建”按鈕,在按鈕,在“Form1.csForm1.cs”中自動(dòng)添加響應(yīng)函數(shù):中自動(dòng)添加響應(yīng)函數(shù):p

59、rivate void toolStripButton1_Click(object sender, EventArgs e)private void toolStripButton1_Click(object sender, EventArgs e) 在該函數(shù)中輸入目標(biāo)代碼,即完成該工具按鈕的在該函數(shù)中輸入目標(biāo)代碼,即完成該工具按鈕的ClickClick事件響應(yīng)。工事件響應(yīng)。工具欄按鈕通常通常和某些特定的菜單項(xiàng)執(zhí)行相同的功能,在此情況下只需具欄按鈕通常通常和某些特定的菜單項(xiàng)執(zhí)行相同的功能,在此情況下只需將工具欄按鈕的將工具欄按鈕的ClickClick響應(yīng)事件與功能相同的菜單項(xiàng)的響應(yīng)代碼相關(guān)聯(lián)即

60、響應(yīng)事件與功能相同的菜單項(xiàng)的響應(yīng)代碼相關(guān)聯(lián)即可。打開(kāi)可。打開(kāi)Form1.Desing.csForm1.Desing.cs文件,展開(kāi)文件,展開(kāi)“窗體設(shè)計(jì)器生成的代碼窗體設(shè)計(jì)器生成的代碼”,修改,修改“新建新建”工具按鈕的工具按鈕的ClickClick響應(yīng)事件為:響應(yīng)事件為:this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1.Click += new System.EventHandler(菜單項(xiàng)響菜單項(xiàng)響應(yīng)函數(shù)應(yīng)函數(shù)););面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C# 山東科技大學(xué)測(cè)繪學(xué)院山東科技大

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論