VB.NET界面設(shè)計(jì)開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)
VB.NET界面設(shè)計(jì)的應(yīng)用在實(shí)際開(kāi)發(fā)中是很常見(jiàn)的一個(gè)操作。初學(xué)者們?cè)趯W(xué)習(xí)這一方面知識(shí)的時(shí)候,可以對(duì)此進(jìn)行一個(gè)詳細(xì)的解讀, 從而掌握相關(guān)應(yīng)用技巧,提高我們的實(shí)際編程能力。#t#
VB.NET界面設(shè)計(jì)一、窗體設(shè)計(jì)
窗體設(shè)計(jì)的好壞往往影響到軟件的整體形象,因此必須首先處理好窗體的設(shè)計(jì)問(wèn)題。
1、 窗體的邊框
窗體邊框的默認(rèn)風(fēng)格為“Sizeable”(可變的),但并不是所有窗體都可以使用可變邊框。因?yàn)橛脩舫3S幸鉄o(wú)意地改變窗體的大小(比如雙擊窗口的標(biāo)題欄),如果窗體中包含大量的控件,極有可能遮住部份控件或由于窗體過(guò)大而使控件的相對(duì)位置發(fā)生變化,使用戶產(chǎn)生疑惑。
解決該問(wèn)題的一種方法是在form_Resize事件過(guò)程中動(dòng)態(tài)改變控件的位置和大小,使之在窗體中保持相對(duì)位置,但缺點(diǎn)是當(dāng)窗體過(guò)小時(shí),很難保證控件的可視效果。當(dāng)然可以用程序控制窗體的最小尺寸,但更簡(jiǎn)單的方法是將窗體邊框設(shè)置成“Fixed Single”, 如果不想提供***化或最小化功能,也可以將其設(shè)為“Fixed Dialog”。
2、窗體的初始位置
窗體的初始位置會(huì)直接影響用戶的使用,特別在多窗口的環(huán)境中,如果新的窗口完全覆蓋了先前的窗口,用戶一定會(huì)以為原先的窗口丟失了。使用層疊方法排列窗口并在任務(wù)條上顯示每個(gè)窗口的進(jìn)程標(biāo)題是個(gè)不錯(cuò)的選擇。 模式窗體激活時(shí)會(huì)阻止用戶操作其它窗體,因此必須在不需要同時(shí)使用任何其它窗體的情況下才使用模式窗體,并確保窗體是可移動(dòng)的。
3、使用多文檔窗口界面
在多窗口界面中,所有窗體都以桌面為依托,好象有多個(gè)應(yīng)用程序在運(yùn)行一樣,窗口管理比較麻煩,采用MDI多文檔界面會(huì)將窗口管理的復(fù)雜程度降到***。
在多文檔界面中,必須有且只有一個(gè)主文檔窗體(MDI主窗體),它的窗體區(qū)域不能放置除菜單類(lèi)組件以外的任何控件,但可以擁有多個(gè)子窗體(MDI子窗體),也就是說(shuō)MDI子窗體不能獨(dú)立存在,并且不能為模式窗體,它們只能在MDI主窗體的窗體區(qū)域內(nèi)活動(dòng);子窗體***化時(shí)其標(biāo)題欄和菜單欄能和主窗體合并;最小化時(shí)子窗體并不會(huì)縮至任務(wù)條上,而是縮小至主窗體的左下角;關(guān)閉主窗體時(shí),所有子窗體都能自動(dòng)關(guān)閉。充分使用好MDI界面會(huì)使用戶覺(jué)得窗口控制更加簡(jiǎn)單。
4、控件的安排
控件是窗體最主要的組成部份,其排列形式會(huì)對(duì)用戶操作的直觀性和易用性產(chǎn)生重要影響。控件的放置一般 裱?韻略?潁?按功能組織控件的位置。
將控件按功能分類(lèi)放置于窗體的不同的區(qū)域,會(huì)讓用戶更容易找到所需的功能。如果將“字體”和“取消”按鈕放在一起,而將“顏色”和“確定”按鈕放在一起,用戶一定會(huì)摸不著頭腦。
在保證可視性良好的前提下,控件的尺寸應(yīng)盡可能地“小”,這樣可以盡量縮小窗體的尺寸。
不在過(guò)小的窗體中放置過(guò)多的控件。
在過(guò)小的窗體中放置過(guò)多的控件,會(huì)造成窗體元素的過(guò)分擁擠,使控件的標(biāo)題和文本難以辨認(rèn)。
如果可能,應(yīng)在按鈕控件中使用圖標(biāo),這樣既可以使畫(huà)面更生動(dòng),又使用戶更容易理解控件的作用。
使用控件的“ ToolsTip ”屬性。
“ToolsTip”可以為控件加上浮動(dòng)的提示條。當(dāng)用戶的鼠標(biāo)指向該控件時(shí),提示條會(huì)自動(dòng)顯示,讓用戶立即從文字中了解控件的功能,數(shù)秒鐘后它還會(huì)自動(dòng)消失,不會(huì)給用戶帶來(lái)視覺(jué)障礙。
VB.NET界面設(shè)計(jì)二、菜單設(shè)計(jì)
菜單是界面設(shè)計(jì)中的重要組成部份,“簡(jiǎn)單、直觀、一致、有效”是菜單設(shè)計(jì)的原則。
下面的建議可能對(duì)創(chuàng)建滿足用戶期望的菜單有所幫助。
按照邏輯功能將菜單項(xiàng)分組,并且在下拉菜單中用分隔線將功能更相關(guān)的項(xiàng)目分組排列。
在同一菜單中避免使用多個(gè)相同功能的菜單項(xiàng),否則會(huì)使用戶產(chǎn)生疑惑。 避免使用沒(méi)有下拉項(xiàng)的菜單項(xiàng),因?yàn)楣铝⒌牟藛雾?xiàng)和按鈕沒(méi)什么區(qū)別。點(diǎn)擊這類(lèi)菜單項(xiàng)并直接產(chǎn)生某個(gè)動(dòng)作,通常會(huì)給用戶產(chǎn)生過(guò)于 “突然”的感覺(jué)。
為了使用戶使用更方便,可以在相關(guān)的窗體或控件區(qū)域內(nèi)設(shè)置彈出式菜單,特別推薦用鼠標(biāo)右鍵彈出菜單。同時(shí)這些彈出式菜單可以在主菜單中保留副本。 如果單擊某個(gè)下拉菜單項(xiàng)會(huì)彈出對(duì)話框的話,***在菜單標(biāo)題的末尾添加“…”(省略號(hào)),這是Windows的約定。這樣會(huì)使菜單更接近標(biāo)準(zhǔn)的Windows菜單,給熟悉Windows操作的用戶帶來(lái)方便。
VB.NET界面設(shè)計(jì)三、照顧用戶的感覺(jué)
用戶的感覺(jué)是檢驗(yàn)軟件成功與否的試金石,這種感覺(jué)包括對(duì)軟件的外觀、易用性和速度等許多方面。
通常用戶單擊圖標(biāo)、控件或者菜單項(xiàng)時(shí)總希望看見(jiàn)一些事情發(fā)生。如果在單擊后屏幕上沒(méi)有發(fā)生變化,用戶可能產(chǎn)生困惑,或者以為沒(méi)有按對(duì)鼠標(biāo),或者干脆懷疑程序是否已經(jīng)“死”了,但實(shí)際上程序可能正在處理一些需要較長(zhǎng)時(shí)間才能完成的事情。結(jié)果不是為了確認(rèn)鼠標(biāo)是否按下而多次運(yùn)行了同一個(gè)程序(這會(huì)使情況更糟),就是程序被強(qiáng)行關(guān)閉。這是我們不愿看到的。
解決的方法很簡(jiǎn)單,只要在開(kāi)始處理前顯示一個(gè)等待畫(huà)面,如顯示一條諸如“正在處理數(shù)據(jù),請(qǐng)您稍候…”之類(lèi)的信息,如果能配合顯示動(dòng)畫(huà)圖標(biāo)和進(jìn)度條,則效果更佳,它給用戶的感覺(jué)就會(huì)變成:程序正在“拼命”地工作,而且很快就會(huì)完成了。
如果整個(gè)程序的啟動(dòng)時(shí)間過(guò)長(zhǎng),也會(huì)造成同樣的情況。可以用類(lèi)似的方法來(lái)解決:顯示一個(gè)“閃現(xiàn)”畫(huà)面(Flash Screen),在顯示過(guò)程中完成啟動(dòng)處理,然后關(guān)閉“閃現(xiàn)”畫(huà)面,進(jìn)入主程序(類(lèi)似Word的啟動(dòng)畫(huà)面)。需要說(shuō)明的是,要顯示“閃現(xiàn)”畫(huà)面,***使用Sub_Main()作為程序的入口。
一些帶有許多窗體的程序在運(yùn)行時(shí)不斷地裝載或卸載窗體,用戶感覺(jué)很“慢”,一個(gè)行之有效的方法就是在程序啟動(dòng)階段將常用的窗體用Load語(yǔ)句預(yù)先裝入內(nèi)存(不顯示),需要的時(shí)候只要用窗體的Show方法就能立即顯示出來(lái)。雖然這有可能增加程序啟動(dòng)的時(shí)間和對(duì)內(nèi)存的要求,但程序運(yùn)行時(shí)的性能表現(xiàn)要快得多。
另外,用戶對(duì)于不受他們控制的程序操作大多比較反感,因此讓用戶有機(jī)會(huì)取消操作將會(huì)更體貼用戶。
一般在執(zhí)行某個(gè)關(guān)鍵操作前,可以顯示一個(gè)對(duì)話框,它至少包括兩個(gè)按鈕:“確定”和“取消”,這樣可以給用戶“反悔”的機(jī)會(huì);在執(zhí)行一些需要長(zhǎng)時(shí)間才能完成的動(dòng)作(比如數(shù)據(jù)復(fù)制)的過(guò)程中,在不影響數(shù)據(jù)安全性的前提下,可以提供一個(gè)“取消”按鈕,讓不耐煩的用戶有機(jī)會(huì)終止操作。在設(shè)計(jì)這種功能時(shí)要熟練使用DoEvents語(yǔ)句。
以上只是本人在使用VB.NET界面設(shè)計(jì)過(guò)程中的一些經(jīng)驗(yàn)和感受,希望能為廣大的VB程序員起到“拋磚引玉”的作用。