




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1多文檔程序設計第二章2教學目標理解文檔視圖結構處理的方式掌握.NET下MDI程序的設計
特點:文檔是一種數據源視圖是數據的用戶窗口表現層和處理分離3文檔/視圖結構4文檔/視圖結構SalesGridViewSalesOtherViewSalesDocumentSalesChartViewSalesTrendView……一般來說,我們可以創建一個document類來管理我們需要處理的數據,然后創建若干個view類來以不同的方式展示這些數據
有兩種基于文檔視圖結構程序的程序:單文檔(SDI)多文檔(MDI)5文檔/視圖結構文檔/視圖結構程序并不等同于一般所說的多文檔程序文檔/視圖結構指出了一種數據和顯示處理分離的處理模型多文檔程序僅僅是程序中能同時顯示和處理多個界面基于文檔視圖結構的單文檔界面(SDI)應用程序:用戶在同一時刻只能操作一個文檔6文檔/視圖結構基于文檔視圖結構的多文檔界面(MDI)應用程序:允許同時操作多個文檔7文檔/視圖結構
文檔/視圖結構的優點:簡化了設計開發過程。模塊劃分更合理、獨立性更強:將數據操作和數據顯示、用戶界面分離。便于系統的擴展和重構。
8文檔/視圖結構
文檔/視圖結構的適用范圍:適于大量數據要進行處理的場合。不適于以下場合:非面向數據的應用或數據量很少的應用程序。非標準的窗口用戶界面的程序。9文檔/視圖結構設置窗體為MDI主窗體:IsMdiContainer=True;10.NET中MDI相關知識獲取當前的子窗體集合MdiChildrenforeach(Fromfinthis.MdiChildren)
if(fisForm2)
f.focus();獲取活動的主窗體ActiveMdiChild11.NET中MDI相關知識排列子窗體12.NET中MDI相關知識ArrangeIcons所有MDI子圖標均排列在MDI父窗體的工作區內Cascade所有MDI子窗口均層疊在MDI父窗體的工作區內。TileHorizontal所有MDI子窗口均水平平鋪在MDI父窗體的工作區內。TileVertical所有MDI子窗口均垂直平鋪在MDI父窗體的工作區內。激活指定窗體ActivateMdiChild(Formform)Mainform.ActivateMdiChild(childForm);childForm.Focus();確定窗體是否是MDI子窗體或主窗體使用Form類的內部屬性IsMdiChild/IsMdiContainerif(form.IsMdiChild) form.Show();else form.ShowDialog();13.NET中MDI相關知識設置MDI子窗體的數據Clipboard:剪貼板對象,該對象提供將數據置于系統剪貼板中以及從中檢索數據的方法Clipboard.GetDataObject:檢索當前位于系統剪貼板中的數據IdataObject.GetDataPresent:確定此實例中存儲的數據是否與指定的格式關聯。IdataObject.GetData:檢索與指定的數據格式關聯的數據。14.NET中MDI相關知識.NET中MDI相關知識IDataObjectdata=Clipboard.GetDataObject();if(data.GetDataPresent(DataFormats.Text){ stringtext=data.GetData(DataFormats.Text).ToString();}MDI子窗體的特點:MDI子窗體由MDI父窗體調度。MDI子窗體需要通過MdiParent指出其MDI父窗體。MDI子窗體不能以模式對話框的方式顯示。16.NET中MDI相關知識ChildFormchildform=newChildForm();childform.MdiParent=this;childform.Show();MDI程序的菜單及子菜單的合并在主窗體中顯示子窗體列表通過指定MdiWindowsListItem實現菜單的合并17.NET中MDI相關知識.NET中MDI相關知識Dotnet2.0中:MDI窗體菜單的合并涉及到Form的MainMenuStrip屬性和MenuStrip的AllowMerge屬性設置MDI主窗體和子窗體的MenuStrip菜單AllowMerge屬性為true;設置MDI主窗體的MainMenuStrip菜單為一特定的MenuStrip菜單.NET中MDI相關知識MenuStrip合并相關屬性MergeAction指示該菜單項的菜單與另一個菜單合并時該菜單項的行為,其值如下之一:Append忽略匹配結果,將該項追加到集合結尾Insert將該項插入目標集合中的匹配項前。如果匹配項在列表的結尾,將該項追加到列表。如果沒有匹配項,將該項插入到集合的開始MatchOnly要求匹配項,但不進行任何操作,使用此方法來創建樹和成功訪問嵌套布局Remove:移除匹配項Replace:用源項替換匹配項。原始項的下拉項不會成為項的子項MergeIndex指示菜單項與另一個菜單項合并時的相對位置.NET中MDI相關知識注意:MDI子窗體的MenuStrip被合并到主窗體后回保留占位符,影響界面的顯示效果,解決此問題要將窗體的菜單控件Visible屬性設置為false即可。MDI程序的退出事件System.Windows.Forms.Form.ClosingSystem.Windows.Forms.Form.FormClosingSystem.Windows.Forms.Form.ClosedSystem.Windows.Forms.Form.FormClosedSystem.Windows.Forms.Form.Deactivate當主窗體引發了相應事件后,將通知并等待所有的子窗體處理同樣的事件,只有當所有子窗體處理完相應的事件后,主窗體才繼續下一個事件的處理。21.NET中MDI相關知識MDI中窗體和SDI窗體的行為差異MDI程序中的Opacity屬性不影響MDI子窗體的外觀CenterToParent方法不影響MDI子窗體的行為MDI應用程序中的MDI子窗體不能顯示為模式窗體22.NET中MDI相關知識.NET下的MDI程序設計基于文檔視圖結構的多文檔程序設計過程創建一個MDI主窗體類,此類提供如下服務:提供數據處理,扮演文檔視圖結構中的文檔的角色創建一個或若干MDI子窗體,這些窗體負責以特定形式顯示文檔中的特定數據,扮演文檔視圖結構中的視圖的角色24.NET下的MDI程序設計需求應用程序提供路徑選擇功能,選擇特定的路徑后,在一個窗口顯示出該路徑下的所有文本文件,可以同時顯示多個路徑下的文本文件列表在文件列表中雙擊指定的文件后,在新的窗口中顯示其內容
25.NET下的MDI程序設計.NET下的MDI程序設計分析我們要創建的是一個基于文檔視圖結構的多文檔程序我們要一個子窗體負責顯示文本文件列表我們要一個子窗體顯示指定文件的內容我們要一個主窗體類,此類完成如下負責提供要處理的路徑調度視圖的顯示邏輯如果各個窗體存在通訊的話,處理這些通訊.NET下的MDI程序設計分析我們要一個主窗體類,此類完成如下負責提供要處理的路徑調度視圖的顯示邏輯當指定一個新的路徑時,調用視圖顯示文本文件列表當被要求打開指定的文件時調用相應
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股權轉讓協議(海景酒店)
- 2025廣東職工勞務合同
- 商品房認購合同
- 2025年門面租賃合同模板
- 護士辭職申請協議書
- 個人提成協議書范本
- 大慶醫學高等專科學校《專業導學(物流管理)》2023-2024學年第一學期期末試卷
- 河南省鄭州市登封市重點中學2025年初三第二次(4月)調研考試化學試題試卷含解析
- 河南林業職業學院《結構力學2》2023-2024學年第二學期期末試卷
- 四川文理學院《生物制藥工程原理和技術》2023-2024學年第二學期期末試卷
- GB/T 665-2007化學試劑五水合硫酸銅(Ⅱ)(硫酸銅)
- GA 588-2012消防產品現場檢查判定規則
- DB1308-T 318-2022酸棗仁采收加工技術規程
- 柿樹常見病蟲害一覽表課件
- 《普通話》教學講義課件
- 水利工程管理單位定崗標準(試點)
- 2022年高考全國甲卷:寫作指導及范文課件16張
- 無菌技術操作PPT
- DBJT15-82-2021 蒸壓加氣混凝土砌塊自承重墻體技術規程
- 2022年《跟徐老師學漢語》新HSK六級詞匯詞
- 妊娠劇吐診斷以及臨床處理專家共識
評論
0/150
提交評論