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