窗體和圖片課件_第1頁
窗體和圖片課件_第2頁
窗體和圖片課件_第3頁
窗體和圖片課件_第4頁
窗體和圖片課件_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第四章SDI/MDI、菜單、ImageList、ToolBar和StatusBar控件回顧在DataSet對(duì)象內(nèi)表示的數(shù)據(jù)是數(shù)據(jù)庫的部分或全部的斷開式內(nèi)存副本對(duì)象管理用數(shù)據(jù)庫的數(shù)據(jù)填充數(shù)據(jù)集和用數(shù)據(jù)集更新數(shù)據(jù)庫所需的命令,這樣方便了數(shù)據(jù)庫和數(shù)據(jù)集之間的交互DataTable表示一個(gè)內(nèi)存數(shù)據(jù)表,而DataColumn表示DataTable中列的結(jié)構(gòu)DataView是DataTable中存儲(chǔ)的數(shù)據(jù)的表示層DataReader對(duì)象提供只進(jìn)、只讀和連接式數(shù)據(jù)訪問,并要求使用專用的數(shù)據(jù)連接DataReader對(duì)象公開允許檢索強(qiáng)類型化數(shù)據(jù)的方法2目標(biāo)了解MDI應(yīng)用程序和SDI應(yīng)用程序了解菜單和掌握菜單控件的使用掌握ImageList控件掌握ToolBar控件和StatusBar控件演示應(yīng)用程序示例3單文檔和多文檔2-2在MDI應(yīng)用程序中可以同時(shí)打開多個(gè)文件應(yīng)用程序窗口文檔窗口5主窗體和子窗體3-1父窗體子窗體子窗體的菜單并入父窗體中6主窗體和子窗體3-2主窗體的特點(diǎn):

啟動(dòng)一個(gè)MDI應(yīng)用程序時(shí),首先顯示父窗體它是應(yīng)用程序中所有其他窗口的容器每個(gè)應(yīng)用程序界面都只能有一個(gè)MDI父窗體在任何指定的時(shí)間都可以打開多個(gè)子窗體任何MDI子窗體都不能移出MDI框架區(qū)域關(guān)閉MDI父窗體則自動(dòng)關(guān)閉所有打開的MDI子窗體7主窗體和子窗體3-3事件說明Closed由用戶或窗體的Close方法關(guān)閉窗體后,發(fā)生該事件Closing正在關(guān)閉窗體時(shí),發(fā)生該事件MdiChildActivate在MDI應(yīng)用程序中激活或關(guān)閉多文檔界面(MDI)子窗體時(shí),觸發(fā)該事件MDI應(yīng)用程序的屬性、方法和事件如果窗體為MDI父窗體,則在觸發(fā)MDI父窗體的Closing事件之前,將觸發(fā)所有MDI子窗體的Closing事件。另外,在觸發(fā)MDI父窗體的Closed事件之前,將觸發(fā)所有MDI子窗體的Closed事件9創(chuàng)建MDI窗體TestFormobjChild=newTestForm();objChild.MdiParent=this;objChild.Show();創(chuàng)建MDI窗體步驟:將IsMdiContainer

屬性設(shè)置為True選擇“項(xiàng)目”“添加Windows窗體”添加給定的代碼,將TestForm

設(shè)置為子窗體MDI父窗體Closing事件的調(diào)用順序:MDI子窗體10激活和去激活窗口顯示活動(dòng)窗口this.ActivateMdiChild(frmChild);激活窗口MessageBox.Show(Convert.ToString(this.ActiveMdiChild));顯示活動(dòng)窗口的名稱活動(dòng)窗口11菜單和菜單組件菜單提供了將命令分組的一致方法用戶易于訪問支持使用訪問鍵啟用鍵盤快捷方式一個(gè)菜單可以帶有若干子菜單菜單是程序中顯示一個(gè)選項(xiàng)列表的圖形元素13在設(shè)計(jì)階段將MainMenu組件添加到窗體上菜單類型3-1上下文菜單Menu類位于System.Windows.Forms命名空間MainMenu控件包含多個(gè)MenuItem控件14菜單類型3-1MainMenu的屬性和方法屬性說明IsParent

指定菜單是否包含菜單項(xiàng),如果此屬性的值為True,指定菜單上則有菜單項(xiàng)

MdiListItem表示菜單項(xiàng),它列出MDI窗體的子窗體MenuItems

檢索屬于指定菜單的菜單項(xiàng)集合方法說明GetContextMenu檢索包含指定菜單的上下文菜單的名稱,默認(rèn)值為null引用

GetForm

檢索包含指定菜單控件的窗體的名稱15菜單類型3-2MainMenumnuMainMenu1=newMainMenu();this.Menu=mnuMainMenu1;mnuMainMenu1.MenuItems.Add("文件")標(biāo)準(zhǔn)前綴創(chuàng)建MainMenu的實(shí)例17菜單類型3-2屬性說明Checked是否在指定菜單項(xiàng)的文本旁邊顯示復(fù)選標(biāo)記,如果此屬性設(shè)置為True,則會(huì)在指定的菜單項(xiàng)旁邊顯示復(fù)選標(biāo)記,默認(rèn)值為False

Index指定菜單項(xiàng)在當(dāng)前活動(dòng)菜單中的索引值,此索引為賦給給每個(gè)菜單項(xiàng)的正整數(shù),它從0開始

Mnemonic獲取一個(gè)指示與此菜單項(xiàng)關(guān)聯(lián)的助記符的值,如果在菜單項(xiàng)的文本中沒有指定助記符,則此屬性返回字符‘0’

Parent指定此菜單項(xiàng)所在菜單的名稱Text菜單項(xiàng)顯示的文本信息MenuItem的屬性、方法和事件18菜單類型3-2標(biāo)準(zhǔn)前綴方法說明PerformClick觸發(fā)菜單項(xiàng)的Click事件,而不需要用戶實(shí)際上單擊此菜單項(xiàng)

事件說明Click按下為菜單項(xiàng)指定的快捷鍵或訪問鍵,或者用鼠標(biāo)單擊菜單項(xiàng)時(shí),將觸發(fā)該事件

創(chuàng)建一個(gè)菜單項(xiàng),并將它添加到主菜單上MenuItem

mnu;mnu

=

new

MenuItem("打開");this.mnuMainMenu1.MenuItems.Add(mnu);19菜單類型3-3ContextMenu的屬性、方法和事件屬性說明SourceControl用于獲取正在顯示快捷菜單的控件方法說明Show在指定位置顯示快捷菜單EventsDescriptionPopup在顯示可快捷菜單前觸發(fā)該事件21菜單類型3-3ContextMenumnuContextMenu1=newContextMenu();this.ContextMenu=mnuContextMenu1;在運(yùn)行時(shí)創(chuàng)建上下文菜單:22在運(yùn)行時(shí)添加/移除菜單項(xiàng)2-1

MainMenumnuMainMenu1=newMainMenu();MenuItemmnuAddItem=newMenuItem();MenuItemmnuRemoveItem=newMenuItem();mnuAddItem.Text=“添加(&A)";mnuRemoveItem.Text=“移除(&R)";mnuMainMenu1.MenuItems.Add(mnuAddItem);mnuMainMenu1.MenuItems.Add(mnuRemoveItem);this.Menu=mnuMainMenu1;DialogResultpreference=newDialogResult();preference=MessageBox.Show(“是否要添加新菜單項(xiàng)?”,“添加",MessageBoxButtons.YesNo);添加鍵盤快捷方式助記符添加菜單項(xiàng)添加菜單項(xiàng)23ImageList控件屬性說明Images該屬性表示圖像列表中包含的圖像的集合ImageSize該屬性表示圖像的大小,默認(rèn)高度和寬度為16x16,最大大小為256x256方法說明Draw該方法用于繪制指定圖像ImageList控件的屬性和方法位于Systems.Windows.Forms命名空間內(nèi)25ImageList控件imgImageList1.Images.Add(Image.FromFile("picture.gif"));this.picMyPicture.Image=this.imgImageList1.Images[0];在ImageList控件中添加圖像的代碼Image類的FromFile()方法用于手動(dòng)將圖像文件添加到ImageList控件中26ToolBar控件屬性說明ImageIndex為工具欄按鈕指定的圖像在圖像列表中的索引值

Parent指定工具欄按鈕所屬的ToolBar控件Style工具欄按鈕的樣式,其中包括DropDownButton(下拉按鈕)、Separator(分隔符)和ToggleButton(切換按鈕)

ToolTipText表示工具欄按鈕的工具提示文本ToolBarButton類的屬性和事件29工具欄–示例創(chuàng)建名為Example1

的Windows應(yīng)用程序。將Form1.cs

更改為frmToolBarExample.cs。將ToolBar

控件拖動(dòng)到窗體上,并將它命名為tbrToolBar。選擇Buttons屬性,并單擊按鈕以顯示“ToolBarButton

集合編輯器”窗口。添加三個(gè)按鈕。添加了三個(gè)按鈕輸出屏幕privatevoidtbrToolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse){ if(e.Button==this.tbrToolBar.Buttons[0]) { MessageBox.Show(“已單擊“打開”按鈕"); }}處理ButtonClick事件的代碼30StatusBar控件兩個(gè)類StatusBarPanelStatusBar31StatusBar控件屬性說明Panels表示StatusBar控件的所有面板ShowPanels用于指定是否顯示狀態(tài)欄的面板StatusBar類的屬性屬性說明Text用于獲取或設(shè)置狀態(tài)欄面板的文本ToolTipText用于獲取或設(shè)置與狀態(tài)欄面板關(guān)聯(lián)的工具提示文本StatusBarPanel類的屬性32StatusBar控件在狀態(tài)欄的第二個(gè)面板上顯示當(dāng)前日期的代碼………sbrStatusBar1.Panels[1].Text=Convert.ToString(DateTime.Today);……….33創(chuàng)建名為BookManagement的Windows應(yīng)用程序。將名稱Form1.cs更改為frmMdiApplication.cs。將Menu、StatusBar

、ToolBar和

ImageList

控件拖動(dòng)到窗體上。應(yīng)用程序示例4-1由菜單、工具欄和狀態(tài)欄組成的應(yīng)用程序演示:創(chuàng)建Windows應(yīng)用程序示例的步驟控件屬性FormName:frmMdiApplicationText:圖書管理系統(tǒng)Menu:mnuBookManageIsMdiContainer:TrueMenuName:mnuBookManageMenuItemName:mnuEnterStoreText:新書入庫(&N)MenuItemName:mnuSearchBookText:查詢書目(&S)MenuItemName:mnuConManageText:菜單管理(&M)MenuItemMenuItemName:mnuExitText:退出系統(tǒng)(&E)MenuItemName:mnuEnginerrBookText:工程類圖書MenuItemName:mnuForeignBookText:外文類圖書MenuItemName:mnuChineseBookText:中文類圖書ToolBarName:tbrBookBarStatusBarName:sbrBookStatus設(shè)置窗體上控件的屬性34應(yīng)用程序示例4-2演示:創(chuàng)建Windows應(yīng)用程序示例的步驟選擇ToolBar

控件,單擊ToolBar

控件的Buttons屬性,此時(shí)會(huì)出現(xiàn)“ToolBarButton

集合編輯器”窗口,向其中添加3個(gè)按鈕,并分別命名為trbNewBooks

、trbBookSearch和trbExit。分別在Text屬性處輸入入庫、查詢和退出單擊“確定”以繼續(xù)35應(yīng)用程序示例4-3選擇StatusBar

控件,并將ShowPanels

屬性設(shè)置為True選擇Panels屬性,并添加兩個(gè)面板,命名為sbrTimeBar

和sbrNameBar

單擊“確定”以繼續(xù)創(chuàng)建新窗體,命名為frmNewBooks.cs,當(dāng)鼠標(biāo)單擊“工程類圖書”菜單選項(xiàng)時(shí)彈出此窗體將以下代碼添加到frmMdiForm的Load事件中privatevoidfrmMdiForm_Load(objectsender,System.EventArgse){ this.sbrBookStatus.Panels[0].Text= DateTime.Now.ToShortDateString();}在mnuEnginerrBook菜單項(xiàng)的Click事件中添加代碼privatevoidmnuEnginerrBook_Click(objectsender,System.EventArgse){

frmNewBooksnewBooks=newfrmNewBooks(); newBooks.MdiParent=this; newBooks.WindowState=FormWindowState.Maximized; newBooks.Show(); this.sbrBookStatus.Panels[1].Text=this.ActiveMdiChild. Text.ToString();}將以下代碼添加到mnuConManage“菜單管理”的Click事件中privatevoidmnuConManage_Click(objectsender,System.EventArgse){ ContextMenumnuContextMenu=newContextMenu(); this.ContextMenu=mnuContextMenu; mnuContextMenu.MenuItems.Add("新書入庫"); mnuContextMenu.MenuItems.Add("查詢書目"); mnuContextMenu.MenuItems.Add("退出系統(tǒng)");}36應(yīng)用程序示例4-4將以下代碼添加到mnuExit菜單項(xiàng)的Click事件中privatevoidmnuExit_Click(objectsender,System.EventArgse){

this.Close();}將以下代碼添加到tbrBookBar工具欄按鈕的ButtonClick事件中privatevoidtbrBookBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse){

if(e.Button==this.tbrBookBar.Buttons[0]) { this.mnuEnginerrBook_Click(sender,e); } elseif(e.Button==this.tbrBookBar.Buttons[1]) { MessageBox.Show("書籍查詢系統(tǒng)正在建設(shè)中……"); } elseif(e.Button==this.tbrBookBar.Buttons[2]) { this.mnuExit_Click(sender,e); }

}37總結(jié)2-1單文檔界面的某一時(shí)刻只能打開一個(gè)文檔,多文檔界面允許同時(shí)打開多個(gè)文檔MDI應(yīng)用程序由一個(gè)MDI父窗體和一個(gè)或多個(gè)子窗體構(gòu)成菜單是程序中顯示一個(gè)選項(xiàng)列表的圖型元素,它提供將命令分組的方法和用戶對(duì)其訪問的簡單途徑38總結(jié)2-2上下文菜單用于使用戶通過單擊鼠標(biāo)右鍵訪問常用的命令I(lǐng)mageList控件是一種圖形存儲(chǔ)控件,可以包含單個(gè)圖像或圖像集合工具欄包含工具欄按鈕,這些按鈕提供對(duì)應(yīng)用程序中最常用的菜單命令的快速訪問狀態(tài)欄通常顯示在窗體的底部,向用戶提供有關(guān)應(yīng)用程序狀態(tài)的信息39MDI程序概述多文檔界面(MDI)應(yīng)用程序可以同時(shí)顯示多個(gè)文檔,每個(gè)文檔顯示在各自的窗口中MDI父窗體是包含MDI子窗口的窗體,子窗口是用戶與MDI應(yīng)用程序進(jìn)行交互的副窗口要將窗體指定為子窗口的MDI容器只需將窗體的IsMDIContainer屬性設(shè)置為True將WindowState屬性設(shè)置為Maximized,因?yàn)楫?dāng)父窗體最大化時(shí)操作MDI子窗口最為容易多文檔界面(MDI)應(yīng)用程序的基本元素是MDI子窗體,因?yàn)樗鼈兪怯脩艚换サ闹行膶⒋绑w的.MdiParent屬性設(shè)置為MDI父窗體,將成為該MDI父窗體的MDI子窗體可以通過合并使用LayoutMDI方法和MDILayout枚舉來重新排列MDI父窗體中的子窗體40窗體上的菜單Windows窗體上的菜單是使用MainMenu對(duì)象創(chuàng)建的,該對(duì)象是一個(gè)MenuItem對(duì)象集合可以在設(shè)計(jì)時(shí)向Windows窗體添加菜單,方法是添加MainMenu組件然后使用菜單設(shè)計(jì)器向其追加菜單項(xiàng)可以用編程方法添加菜單,方法是向Windows窗體添加一個(gè)或多個(gè)MainMenu對(duì)象并向該集合中添加MenuItem對(duì)象。41上下文菜單上下文菜單在應(yīng)用程序內(nèi)使用,使用戶可通過鼠標(biāo)右擊訪問常用的命令通常,上下文菜單分配給控件,并提供與特定控件相關(guān)的特定命令ContextMenu組件可讓用戶訪問常用菜單命令42ToolBar控件ToolBar控件通常沿其父窗口頂部“??俊保且部梢詫⑺?康酱翱诘娜我贿吷袭?dāng)用戶將鼠標(biāo)指針指向工具欄按鈕時(shí),工具欄可以顯示工具提示ToolBar控件可以通過向Buttons集合添加Button對(duì)象來創(chuàng)建工具欄ToolBar按鈕中能夠顯示圖標(biāo),目的是便于用戶進(jìn)行識(shí)別在發(fā)生ToolBar控件的ButtonClick事件時(shí),可以計(jì)算ToolBarButtonClickEventArgs類的Button屬性43Stat

溫馨提示

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