《Visual Basic程序設(shè)計(jì)》課件1第9章_第1頁
《Visual Basic程序設(shè)計(jì)》課件1第9章_第2頁
《Visual Basic程序設(shè)計(jì)》課件1第9章_第3頁
《Visual Basic程序設(shè)計(jì)》課件1第9章_第4頁
《Visual Basic程序設(shè)計(jì)》課件1第9章_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第9章界面設(shè)計(jì)9.1界面設(shè)計(jì)概述

9.2菜單設(shè)計(jì)

9.3工具欄設(shè)計(jì)

9.4狀態(tài)欄設(shè)計(jì)

9.5多文檔界面設(shè)計(jì)

教學(xué)小結(jié)

習(xí)題

9.1界面設(shè)計(jì)概述

1.符合Windows界面準(zhǔn)則

Windows操作系統(tǒng)的主要優(yōu)點(diǎn)之一就是為基于其上開發(fā)的應(yīng)用程序提供了標(biāo)準(zhǔn)的操作界面。如果用戶掌握了基于Windows的應(yīng)用程序的使用方法,就很容易使用符合Windows界面準(zhǔn)則的其他應(yīng)用程序。如果偏離了Windows界面準(zhǔn)則,使用者使用應(yīng)用程序時(shí)就會(huì)感到別扭,比如,在菜單設(shè)計(jì)中幾乎均遵循這樣的標(biāo)準(zhǔn):“文件”菜單在最左邊,然后是“編輯”、“工具”等可選的菜單,最右邊是“幫助”菜單。如果把“幫助”菜單放在最左邊,就會(huì)降低應(yīng)用程序的可用性。同樣,菜單項(xiàng)設(shè)計(jì)時(shí)也應(yīng)符合Windows界面準(zhǔn)則。如“編輯”菜單通常有“復(fù)制”、“剪切”與“粘貼”等菜單項(xiàng),若將它們放置于“文件”菜單下也會(huì)引起用戶的不可理解。

2.確定控件的位置

在大多數(shù)界面設(shè)計(jì)中,不是所有的界面元素都一樣重要。仔細(xì)斟酌很有必要,以確保重要的界面信息或操作能快速地顯現(xiàn)給用戶。通常,將重要的或者頻繁訪問的操作放在屏幕的左上部位。因?yàn)榘凑杖藗冇醚鄣牧?xí)慣,首先注視屏幕的左上部位。

3.保證界面元素的一致性

在用戶界面設(shè)計(jì)中,一致的外觀(如顏色搭配、窗口大小、字體、字號(hào)、線型粗細(xì)等)可為使用者創(chuàng)造一種和諧美,有效減輕用眼疲勞。如果界面缺乏一致性,則讓人們感到凌亂和缺乏條理性,這無疑會(huì)降低人們使用的興趣。

總之,應(yīng)用程序界面設(shè)計(jì)應(yīng)體現(xiàn)以用戶為中心的思想,在滿足用戶需求的基礎(chǔ)上,充分考慮行業(yè)的要求與規(guī)范,做好界面設(shè)計(jì)的組織或布局工作,以提高應(yīng)用程序界面的可用性和美觀性。 9.2菜單設(shè)計(jì)

9.2.1菜單概述

所謂“菜單”,就是可供選擇的命令項(xiàng)目列表,分為下拉式菜單和彈出式(快捷)菜單兩種形式。下拉式菜單位于菜單欄上,通過點(diǎn)擊菜單欄上的菜單標(biāo)題打開;彈出式菜單通常通過在某一特定區(qū)域單擊鼠標(biāo)右鍵打開。

圖9-1為下拉式菜單的示例圖,它位于窗口的頂部,在窗口的標(biāo)題欄下顯示了下拉式菜單的菜單欄,包含多個(gè)菜單標(biāo)題。程序在運(yùn)行時(shí),當(dāng)用戶單擊某個(gè)菜單標(biāo)題時(shí)便會(huì)下拉相應(yīng)的菜單項(xiàng)(也稱子菜單)。圖9-1下拉式菜單及其組成元素示例菜單中的菜單項(xiàng)可以是命令、分隔條或子菜單標(biāo)題。彈出式(快捷)菜單一般由鼠標(biāo)右鍵激活,所包含的菜單項(xiàng)同下拉菜單相同,如圖9-2所示。圖9-2彈出式菜單9.2.2菜單設(shè)計(jì)

在VB中菜單設(shè)計(jì)實(shí)際也是一種控件的應(yīng)用,這種控制稱之為“菜單”控件,但菜單控件不像其他控件一樣放在工具箱中。要使用菜單控件與其相應(yīng)的命令,應(yīng)選擇“工具”菜單中的“菜單編輯器”命令,或單擊工具欄上的“菜單編輯器”按鈕,或在窗體上單擊右鍵在快捷菜單中選擇“菜單編輯器”命令,便可打開如圖9-3所示的“菜單編輯器”對(duì)話框。圖9-3“菜單編輯器”對(duì)話框下面介紹菜單編輯器中的各組成元素。

(1)“標(biāo)題”(Caption)文本框:用于設(shè)置菜單標(biāo)題,鍵入的內(nèi)容會(huì)在菜單編輯器窗口下邊的空白部分顯示出來,該區(qū)域稱為菜單顯示區(qū)域。

(2)“名稱”(Name)文本框:菜單項(xiàng)的對(duì)象名稱。對(duì)象名稱的命名規(guī)則同簡單變量,如果菜單中有分隔條,分隔條也要有對(duì)應(yīng)的名稱。

(3)“索引”(Index)文本框:與一般控件類似,菜單可以利用索引來建立菜單數(shù)組,并以索引值來標(biāo)識(shí)數(shù)組中的不同成員(類似于Command1(0)、Command1(1)、Command1(2)…)。

(4)“快捷鍵”(Shortcut)列表框:該列表框列出了很多快捷鍵供用戶選擇。菜單項(xiàng)的快捷鍵是可選的,如果選擇了快捷鍵,則程序運(yùn)行時(shí)快捷鍵會(huì)顯示在菜單標(biāo)題的右邊,通過快捷鍵同樣可完成相應(yīng)命令的操作。

(5)“下一個(gè)”(Next)按鈕:在菜單列表的最后產(chǎn)生一個(gè)空白項(xiàng),進(jìn)入下一個(gè)同級(jí)菜單項(xiàng)的設(shè)計(jì)。

(6)“→”和“←”按鈕:菜單層次的設(shè)定按鈕,用于調(diào)整菜單項(xiàng)的級(jí)別。若建立好一個(gè)菜單項(xiàng)后按“→”按鈕,則該菜單項(xiàng)在顯示框中向右移一段,系統(tǒng)自動(dòng)在菜單項(xiàng)前加4個(gè)點(diǎn)“····”,表示該菜單項(xiàng)為下一級(jí)的菜單項(xiàng)。如果選定了某菜單項(xiàng)后,再按“←”按鈕,前面的省略號(hào)將取消,表示該菜單項(xiàng)是上一級(jí)的菜單項(xiàng)。

(7)“插入”(Insert)按鈕:在選定的菜單項(xiàng)前插入一個(gè)菜單項(xiàng)。

(8)“刪除”(Delete)按鈕:刪除選定的菜單項(xiàng)。

(9)“↑”和“↓”按鈕:用于改變菜單項(xiàng)的位置。通過“↑”、“↓”按鈕將選定的菜單項(xiàng)上移或下移。

(10)“復(fù)選”(Checked)檢查框:如果在顯示框中選定了某個(gè)菜單項(xiàng),再選定Checked檢查框,那么當(dāng)前被選定的菜單項(xiàng)左邊加上了一個(gè)檢查標(biāo)記“√”,表示該菜單項(xiàng)是一個(gè)選項(xiàng)。

(11)“有效”(Enabled)檢查框:決定菜單項(xiàng)是否可選(有效)。若該檢查框被選中,菜單項(xiàng)的Enabled屬性為True,程序執(zhí)行時(shí)菜單項(xiàng)高亮度顯示;當(dāng)未被選中時(shí),Enabled屬性為False,在程序執(zhí)行時(shí)該菜單項(xiàng)變成灰色,不能被用戶選擇。

(12)“可見”(Visible)檢查框:決定菜單項(xiàng)是否可見。若該檢查框未被選中,則該菜單項(xiàng)的Visible屬性為False,程序執(zhí)行時(shí)不可見。

例9-1

設(shè)計(jì)一個(gè)如圖9-4a所示的文本編輯器,其菜單設(shè)計(jì)如圖9-4b所示。

在窗體上添加1個(gè)TextBox控件(Text1)和1個(gè)通用對(duì)話框控件(ComDlg),用菜單編輯器編輯各菜單項(xiàng),菜單中各選項(xiàng)的屬性設(shè)置如表9-1所示。表9-1菜單中各選項(xiàng)的屬性設(shè)置圖9-4a?“文本編輯器”設(shè)計(jì)界面圖9-4b菜單各選項(xiàng)屬性設(shè)置9.2.3修改菜單項(xiàng)狀態(tài)

當(dāng)菜單創(chuàng)建好后,其中的菜單項(xiàng)在程序運(yùn)行過程中并不是一成不變的,可以根據(jù)實(shí)際情況動(dòng)態(tài)地改變菜單項(xiàng)的狀態(tài)。例如,當(dāng)前條件不滿足菜單項(xiàng)的執(zhí)行時(shí),可以暫時(shí)使其失效或?qū)⑵潆[藏起來,當(dāng)條件滿足時(shí),再使其有效或顯示出來,菜單項(xiàng)的狀態(tài)在“可用”與“不可用”兩種狀態(tài)間切換。

例9-2

在例9-1中,當(dāng)文本框中沒有內(nèi)容被選中時(shí),剪切、復(fù)制、刪除菜單項(xiàng)為不可用,當(dāng)有內(nèi)容被選中時(shí),則變?yōu)榭捎脿顟B(tài)。

設(shè)計(jì)思路:用戶要使用這些命令,首先必須打開Edit菜單,因此,在Edit菜單打開(被單擊)時(shí)設(shè)置命令是否可用。在程序中加入以下代碼:9.2.4增減菜單項(xiàng)

Windows應(yīng)用程序中的菜單項(xiàng)不但可以隨著條件的改變而改變其狀態(tài),而且還可以隨著用戶的操作動(dòng)態(tài)地增、減菜單項(xiàng)的內(nèi)容。

在VB中,實(shí)現(xiàn)菜單項(xiàng)增、減的方法是:將有關(guān)菜單項(xiàng)創(chuàng)建為菜單數(shù)組,在程序運(yùn)行過程中調(diào)用Load或UnLoad方法添加或刪除菜單項(xiàng)即可。

例9-3

在例9-1中添加一個(gè)“字號(hào)”的頂級(jí)菜單,用于設(shè)置文本框中字體的大小。該菜單項(xiàng)包括“五號(hào)”、“四號(hào)”子菜單項(xiàng)。當(dāng)用戶選擇“四號(hào)”時(shí),在該菜單中添加“三號(hào)”子菜單項(xiàng);當(dāng)選擇“五號(hào)”時(shí),在該菜單項(xiàng)中刪除“三號(hào)”子菜單項(xiàng)。

設(shè)計(jì)界面如圖9-5所示,“字號(hào)”菜單屬性設(shè)置如表9-2所示。圖9-5菜單項(xiàng)的增減表9-2“字號(hào)”菜單屬性設(shè)置9.2.5彈出式菜單設(shè)計(jì)

彈出式菜單是獨(dú)立于主菜單欄而顯示在窗體特定位置的浮動(dòng)菜單,它可以在窗體的指定區(qū)域顯示出來,并對(duì)程序事件做出響應(yīng)。彈出式菜單又稱為上下文菜單或快捷菜單,在Windows中一般通過單擊右鍵來打開彈出式菜單。

在VB中,彈出式菜單是下拉式菜單的一部分,只是它的打開方式獨(dú)立于下拉式菜單,因此彈出式菜單的建立和修改與下拉式菜單相同,均通過“菜單編輯器”來完成。若不想讓彈出式菜單出現(xiàn)在主菜單中,只需要將菜單項(xiàng)設(shè)置為隱藏(Visible屬性值為False)。需要打開彈出式菜單時(shí)使用PopupMenu方法即可。

PopupMenu方法的格式:

[窗體名.]PopupMenu菜單名[,flag[,X,Y]]

其中:

(1)?X,Y:快捷菜單顯示的位置坐標(biāo)。

(2)菜單名:至少包含有一個(gè)菜單項(xiàng)的菜單名稱(Name屬性值)。

(3)?flag:指定彈出式菜單的行為參數(shù)。彈出式菜單包含位置及行為兩個(gè)常數(shù),位置常數(shù)值見表9-3,行為常數(shù)值見表9-4。表9-3彈出式菜單位置常數(shù)值表9-4彈出式菜單行為常數(shù)值

例9-4

將例9-3中的“編輯(Edit)”菜單作為文本框(Text1)的快捷菜單(當(dāng)用戶在文本框中單擊右鍵時(shí)顯示菜單)。

在代碼編輯器中添加以下代碼:

9.3工?具?欄?設(shè)?計(jì)

9.3.1ImageList控件

在窗體上添加一個(gè)ImageList控件后,右鍵單擊,選擇“屬性”,打開ImageList控件的屬性頁,并選擇“圖像”選項(xiàng)卡,如圖9-6所示。通過此界面可以向ImageList控件中添加和刪除圖片。圖9-6ImageList控件的屬性頁9.3.2ToolBar控件

1.“通用”選項(xiàng)卡

“通用”選項(xiàng)卡如圖9-7所示,用于設(shè)置工具欄的整體外觀和一些通用動(dòng)作選項(xiàng)。

“通用”選項(xiàng)卡主要選項(xiàng)說明如下:

(1)“圖像列表”:連接一個(gè)ImageList控件,用于在正常狀態(tài)下工具欄按鈕上顯示的圖片。

(2)“可換行的”復(fù)選框:該復(fù)選框選中時(shí),當(dāng)工具欄的長度不能容納所有按鈕時(shí),則在下一行顯示,否則不顯示剩余的按鈕。

(3)“樣式”:設(shè)定按鈕的顯示是普通風(fēng)格還是平面風(fēng)格,默認(rèn)為普通風(fēng)格。圖9-7“通用”選項(xiàng)卡

2.“按鈕”選項(xiàng)卡

“按鈕”選項(xiàng)卡如圖9-8所示,其功能是用來設(shè)置工具欄上各按鈕的顯示樣式及一些行為參數(shù)。圖9-8?“按鈕”選項(xiàng)卡

(1)“插入按鈕”與“刪除按鈕”:在工具欄上添加或刪除一個(gè)按鈕。

(2)“索引”(Index)與“關(guān)鍵字”(Key):是按鈕在工具欄的按鈕集合中的唯一編號(hào)。通過索引或關(guān)鍵字訪問按鈕,索引表示每個(gè)按鈕的數(shù)字編號(hào),關(guān)鍵字是每個(gè)按鈕的標(biāo)識(shí)名。另外,索引是必須指定的,而關(guān)鍵字是可選的。

(3)“標(biāo)題”與“描述”:標(biāo)題即按鈕的Caption屬性,設(shè)置顯示在按鈕上的文字。描述設(shè)置按鈕的說明信息。

(4)“樣式”(Style屬性):決定按鈕的行為特點(diǎn),且影響按鈕的功能。樣式的屬性值及功能見表9-5。表9-5Style屬性值及其功能

(5)“圖像”(Image屬性):設(shè)置工具欄上按鈕的圖像。該圖像引用ImageList對(duì)象中的圖像,其值是ImageList對(duì)象中圖片的Index或Key值。

(6)“值”(Value屬性):表示按鈕的狀態(tài),有按下(tbrPressed)和彈起(tbrUnpressed)兩種狀態(tài)。僅當(dāng)樣式屬性值為1和2時(shí)起作用。

(7)“工具提示文本”(ToolTipText屬性):鼠標(biāo)指向按鈕時(shí)顯示的說明文字。

(8)“按鈕菜單”:當(dāng)按鈕樣式屬性值為5時(shí),用于插入或刪除按鈕菜單的菜單項(xiàng)。

3.常用事件

ToolBar控件常用的事件有兩個(gè):ButtonClick和ButtonMenuClick。

ButtonClick:單擊按鈕(占位符和分隔符除外)時(shí)觸發(fā)。可以通過按鈕的Index屬性或Key屬性識(shí)別被單擊的按鈕,并用SelectCase語句編寫按鈕的功能代碼。其代碼結(jié)構(gòu)如下:

ButtonMenuClick:當(dāng)ToolBar控件Style屬性值為5時(shí),即按鈕樣式為菜單按鈕時(shí),單擊此按鈕時(shí)觸發(fā)??梢允褂肂uttonMenu對(duì)象的Index屬性或Key屬性識(shí)別是哪個(gè)按鈕被單擊,并用SelectCase語句編寫按鈕的功能代碼。

代碼結(jié)構(gòu)如下:9.3.3使用ToolBar和ImageList控件創(chuàng)建工具欄

創(chuàng)建工具欄的具體步驟如下:

(1)在窗體上添加ToolBar控件和ImageList控件。

(2)在ImageList控件中添加圖像。

(3)在ToolBar控件屬性頁的“通用”選項(xiàng)卡的“圖像列表”組合框中選擇ImageList控件,建立與ImageList控件的關(guān)聯(lián),并設(shè)置其他通用參數(shù)。

(4)在“按鈕”選項(xiàng)卡中添加按鈕,并設(shè)置各按鈕的屬性及顯示圖片的ImageList索引。

(5)編寫響應(yīng)ToolBar控件的事件代碼。

例9-5

在例9-4的基礎(chǔ)上為編輯器添加一個(gè)“格式”工具欄,可以選擇字體,設(shè)定對(duì)齊方式和字體樣式。

(1)設(shè)計(jì)界面。

在窗體上添加1個(gè)ImageList控件(ImageList1)和1個(gè)ToolBar控件(ToolBar1)。在ToolBar中添加9個(gè)按鈕。

(2)設(shè)置屬性。

在ImageList1中添加7張圖片(在VB的安裝目錄C:\ProgramFiles\MicrosoftVisualStudio\Common\Graphics\Bitmaps\TlBr_W95中),圖片順序如圖9-9a所示。圖9-9aImageList屬性設(shè)置在ToolBar屬性頁的“通用”選項(xiàng)卡中的“圖像列表”組合框中選擇“ImageList1”,與ImageList1控件建立聯(lián)系;在“樣式”組合框中選擇“tbrFlat”,設(shè)置按鈕顯示樣式為平面風(fēng)格;在“按鈕”選項(xiàng)卡中設(shè)置各按鈕的屬性,如表9-6所示。表9-6ToolBar1控件各按鈕屬性設(shè)置圖9-9bToolBar控件示例

9.4狀?態(tài)?欄?設(shè)?計(jì)

狀態(tài)欄通常位于窗體的底部,用來顯示程序的運(yùn)行狀態(tài)及其他信息。如顯示一些系統(tǒng)信息、日期、時(shí)間等;顯示菜單、按鈕或其他對(duì)象的功能或使用方法;顯示鍵盤狀態(tài);顯示數(shù)字鎖定鍵、大小寫轉(zhuǎn)換鍵、插入鍵的狀態(tài)等。

1.主要屬性

StatusBar的主要屬性可以通過其“屬性頁”的“通用”和“窗格”兩個(gè)選項(xiàng)卡完成?!按案瘛边x項(xiàng)卡如圖9-10所示。圖9-10“窗格”選項(xiàng)卡

(1)“插入窗格”和“刪除窗格”按鈕:在狀態(tài)欄中添加或刪除一個(gè)窗格(Panel對(duì)象)。

(2)“索引”和“關(guān)鍵字”:為每個(gè)窗格編號(hào)或標(biāo)識(shí)。

(3)“文本”:窗格上顯示的文本內(nèi)容。

(4)“對(duì)齊”:設(shè)置文本的對(duì)齊方式。

(5)“瀏覽”按鈕:為窗格添加圖片,圖像擴(kuò)展名可以是“.ico”或“.bmp”。

(6)“樣式”:設(shè)置窗格顯示什么樣的信息。樣式常數(shù)值及說明如表9-7所示。表9-7樣式屬性值及其功能

(7)“斜面”、“自動(dòng)調(diào)整大小”和“對(duì)齊”:設(shè)置每個(gè)窗格的外觀。具體屬性值分別見表9-8、表9-9和表9-10。表9-8斜面屬性值及其功能表9-9自動(dòng)調(diào)整大小屬性值及其功能表9-10對(duì)齊屬性值及其功能

例9-6

為例9-5的文本編輯器添加一個(gè)狀態(tài)欄。在狀態(tài)欄中顯示CapsLock鍵和Insert鍵的狀態(tài)、系統(tǒng)時(shí)間,并顯示文本框中已輸入的字符數(shù),如圖9-11所示。圖9-11StatusBar控件示例

(1)設(shè)計(jì)界面。在窗體上添加一個(gè)狀態(tài)欄。

(2)屬性設(shè)置。

在狀態(tài)欄中插入4個(gè)窗格,依次將其樣式設(shè)為sbrText、sbrCaps、sbrIns和sbrTime。

(3)編寫代碼。

PrivateSubText1_Change()

StatusBar1.Panels(1).Text="已輸入"&Len(Text1.Text)&"個(gè)字符"

EndSub

9.5多文檔界面設(shè)計(jì)

9.5.1多文檔界面概述

多文檔界面由父窗體和子窗體組成,父窗體(MDI窗體)作為子窗體的容器,子窗體(文檔窗體)顯示各自文檔,所有子窗體具有相同的功能。如圖9-12是一個(gè)多文檔應(yīng)用程序界面。圖9-12多文檔應(yīng)用程序界面多文檔界面具有如下特性:

(1)所有子窗體均顯示在MDI窗體的工作區(qū)中,用戶可改變其大小,移動(dòng)其位置,但被限制在MDI窗體中。

(2)當(dāng)最小化子窗體時(shí),它的圖標(biāo)將顯示在MDI窗體下方而不是在任務(wù)欄上。當(dāng)最小化MDI窗體時(shí),所有的子窗體隨MDI窗體一起最小化,但只有MDI窗體的圖標(biāo)出現(xiàn)在工具欄上。

(3)當(dāng)最大化一個(gè)子窗體時(shí),它只能充滿整個(gè)MDI窗體的工作區(qū),而不是整個(gè)桌面。另外,它的標(biāo)題與MDI窗體的標(biāo)題一起顯示在MDI窗體的標(biāo)題欄上。

(4)?MDI窗體和子窗體都可有各自的菜單,當(dāng)子窗體加載時(shí)將覆蓋MDI窗體的菜單。9.5.2創(chuàng)建和設(shè)計(jì)MDI窗體及子窗體

1.創(chuàng)建MDI窗體

選擇“工程”菜單中的“添加MDI窗體”命令,便可創(chuàng)建一個(gè)MDI窗體。MDI窗體是所有子窗體的容器,可在其上建立菜單欄、工具欄、狀態(tài)欄等控件,但不能建立文檔控件,如文本框控件。

2.創(chuàng)建子窗體

子窗體其實(shí)是一種隸屬于MDI窗體的一個(gè)普通窗體。因此,要?jiǎng)?chuàng)建一個(gè)子窗體,先創(chuàng)建一個(gè)普通窗體,然后再將窗體的MDIChild屬性設(shè)置為True即可。

在工程管理器中可以看到子窗體的圖標(biāo)、MDI窗體的圖標(biāo)及普通窗體的圖標(biāo)都各不相同,如圖9-13所示。圖9-13MDI窗體管理多文檔窗體應(yīng)用程序的文檔數(shù)由用戶在運(yùn)行程序時(shí)按照自己的需要來創(chuàng)建,因此在設(shè)計(jì)期要?jiǎng)?chuàng)建多少個(gè)子窗體是不確定的。所以,對(duì)子窗體的創(chuàng)建一般都是首先創(chuàng)建一個(gè)窗體作為模板,在程序運(yùn)行期按照需要再隨時(shí)創(chuàng)建。

假設(shè)已經(jīng)創(chuàng)建好一個(gè)子窗體模板Form1,則動(dòng)態(tài)創(chuàng)建其他窗體的代碼如下:

DimChildFrmAsNewForm1'聲明并創(chuàng)建一個(gè)ChildFrm窗體變量

ChildFrm屬性名=值 '設(shè)置窗體的一些屬性,如Caption

ChildFrm.Show '將新窗體顯示出來9.5.3MDI窗體與子窗體交互

MDI應(yīng)用程序的子窗體是在程序運(yùn)行過程中動(dòng)態(tài)建立的,要與這些子窗體進(jìn)行交互,使用普通方法是不能實(shí)現(xiàn)的。為了便于控制這些子窗體及其中的控件,VB為MDI窗體提供了兩個(gè)屬性,即ActiveForm和ActiveControl。

ActiveForm:表示具有焦點(diǎn)的或者最后被激活的子窗體。

ActiveControl:表示活動(dòng)子窗體上具有焦點(diǎn)的控件。9.5.4卸載MDI窗體

當(dāng)用戶通過“關(guān)閉”命令關(guān)閉MDI窗體時(shí),首先觸發(fā)MDI窗體的QueryUnLoad事件,隨即觸發(fā)各子窗體的QueryUnLoad事件,然后觸發(fā)各子窗體的UnLoad事件,最后觸發(fā)MDI窗體的UnLoad事件。

MDI的卸載過程是:首先卸載所有的子窗體,最后卸載MDI窗體。

由于QueryUnLoad事件是在窗體卸載之前被調(diào)用的,因此在此事件中可以給用戶一個(gè)機(jī)會(huì)來保持窗體,或阻止窗體關(guān)閉(將QueryUnLoad事件的Cancel參數(shù)設(shè)置為1)。9.5.5子窗體排列

在MDI窗體中,通過MDI窗體的Arrange方法可以將所有的子窗體按不同的方式進(jìn)行排列,以便用戶操作。

Arrange方法的格式:

MDI窗體名.Arrange排列方式

其中,排列方式參數(shù)值及意義見表9-11。表9-11子窗體排列方式9.5.6應(yīng)用MDI窗體注意事項(xiàng)

使用MDI窗體為應(yīng)用程序的開發(fā)提供了高效、多功能的良好平臺(tái)。但為了提高應(yīng)用程序的性能,進(jìn)行MDI應(yīng)用程序開發(fā)時(shí)應(yīng)注意以下事項(xiàng):

(1)盡量少使用MDI子窗體。因?yàn)槊考虞d一個(gè)子窗體,就要消耗較多的內(nèi)存及系統(tǒng)資源。過多的使用子窗體會(huì)造成內(nèi)存和系統(tǒng)資源不足,而影響程序的運(yùn)行速度。

(2)在子窗體中,對(duì)子窗體本身引用時(shí),應(yīng)使用Me關(guān)鍵字,而在MDI窗體中則使用ActiveForm。

(3)當(dāng)子窗體菜單項(xiàng)、MDI菜單項(xiàng)或工具欄均執(zhí)行相同功能操作時(shí),應(yīng)以過程的形式保存到標(biāo)準(zhǔn)模塊中,供各模塊共享。

(4)把整個(gè)應(yīng)用程序中所使用的不可視控件(如Timer)都放在MDI窗體上,以便所有子窗體都可以使用這些控件。

例9-7

建立如圖9-14所示的多文檔編輯器。圖9-14多文檔編輯器界面操作步驟:

(1)建立一個(gè)新工程,

溫馨提示

  • 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)論