VB程式介面設計經驗點滴 (轉)

worldblog發表於2007-12-09
VB程式介面設計經驗點滴 (轉)[@more@]VB介面設計點滴
  使用VisualBasic(以下簡稱VB, 版本為6.0SP4)可以設計出標準風格的,但是要建立真正易用的圖形介面,還有許多工作要做。

一、窗體設計

窗體設計的好壞往往影響到軟體的整體形象,因此必須首先處理好窗體的設計問題。

1、 窗體的邊框

  窗體邊框的預設風格為“Sizeable”(可變的),但並不是所有窗體都可以使用可變邊框。因為常常有意無意地改變窗體的大小(比如雙擊視窗的標題欄),如果窗體中包含大量的,極有可能遮住部份控制元件或由於窗體過大而使控制元件的相對位置發生變化,使使用者產生疑惑。
  解決該問題的一種方法是在form_Resize事件過程中動態改變控制元件的位置和大小,使之在窗體中保持相對位置,但缺點是當窗體過小時,很難保證控制元件的可視效果。當然可以用程式控制窗體的最小尺寸,但更簡單的方法是將窗體邊框設定成“Fixed Single”, 如果不想提供最大化或最小化功能,也可以將其設為“Fixed Dialog”。

2、窗體的初始位置

  窗體的初始位置會直接影響使用者的使用,特別在多視窗的環境中,如果新的視窗完全覆蓋了先前的視窗,使用者一定會以為原先的視窗丟失了。使用層疊方法排列視窗並在任務條上顯示每個視窗的程式標題是個不錯的選擇。 窗體啟用時會阻止使用者操作其它窗體,因此必須在不需要同時使用任何其它窗體的情況下才使用模式窗體,並確保窗體是可移動的。

3、使用多文件視窗介面

  在多視窗介面中,所有窗體都以桌面為依託,好象有多個應用程式在執行一樣,視窗管理比較麻煩,採用MDI多文件介面會將視窗管理的複雜程度降到最低。
  在多文件介面中,必須有且只有一個主文件窗體(MDI主窗體),它的窗體區域不能放置除選單類以外的任何控制元件,但可以擁有多個子窗體(MDI子窗體),也就是說MDI子窗體不能獨立存在,並且不能為模式窗體,它們只能在MDI主窗體的窗體區域內活動;子窗體最大化時其標題欄和選單欄能和主窗體合併;最小化時子窗體並不會縮至任務條上,而是縮小至主窗體的左下角;關閉主窗體時,所有子窗體都能自動關閉。充分使用好MDI介面會使使用者覺得視窗控制更加簡單。

4、控制元件的安排

  控制元件是窗體最主要的組成部份,其排列形式會對使用者操作的直觀性和易用性產生重要影響。控制元件的放置一般應遵循以下原則: 按功能組織控制元件的位置。
  將控制元件按功能分類放置於窗體的不同的區域,會讓使用者更容易找到所需的功能。如果將“字型”和“取消”按鈕放在一起,而將“顏色”和“確定”按鈕放在一起,使用者一定會摸不著頭腦。
  在保證可視性良好的前提下,控制元件的尺寸應儘可能地“小”,這樣可以儘量縮小窗體的尺寸。
  不在過小的窗體中放置過多的控制元件。
  在過小的窗體中放置過多的控制元件,會造成窗體元素的過分擁擠,使控制元件的標題和文字難以辨認。
  如果可能,應在按鈕控制元件中使用圖示,這樣既可以使畫面更生動,又使使用者更容易理解控制元件的作用。
  使用控制元件的“ ToolsT”屬性。
  “ToolsTip”可以為控制元件加上浮動的提示條。當使用者的滑鼠指向該控制元件時,提示條會自動顯示,讓使用者立即從文字中瞭解控制元件的功能,數秒鐘後它還會自動消失,不會給使用者帶來視覺障礙。

二、選單設計

  選單是介面設計中的重要組成部份,“簡單、直觀、一致、有效”是選單設計的原則。
  下面的建議可能對建立滿足使用者期望的選單有所幫助。

  按照邏輯功能將選單項分組,並且在下拉選單中用分隔線將功能更相關的專案分組排列。
  在同一選單中避免使用多個相同功能的選單項,否則會使使用者產生疑惑。 避免使用沒有下拉項的選單項,因為孤立的選單項和按鈕沒什麼區別。點選這類選單項並直接產生某個動作,通常會給使用者產生過於 “突然”的感覺。
  為了使使用者使用更方便,可以在相關的窗體或控制元件區域內設定彈出式選單,特別推薦用滑鼠右鍵彈出選單。同時這些彈出式選單可以在主選單中保留副本。 如果單擊某個下拉選單項會彈出對話方塊的話,最好在選單標題的末尾新增“…”(省略號),這是Windows的約定。這樣會使選單更接近標準的Windows選單,給熟悉Windows操作的使用者帶來方便。

三、照顧使用者的感覺

  使用者的感覺是檢驗軟體成功與否的試金石,這種感覺包括對軟體的外觀、易用性和速度等許多方面。
通常使用者單擊圖示、控制元件或者選單項時總希望看見一些事情發生。如果在單擊後螢幕上沒有發生變化,使用者可能產生困惑,或者以為沒有按對滑鼠,或者乾脆懷疑程式是否已經“死”了,但實際上程式可能正在處理一些需要較長時間才能完成的事情。結果不是為了確認滑鼠是否按下而多次執行了同一個程式(這會使情況更糟),就是程式被強行關閉。這是我們不願看到的。
  解決的方法很簡單,只要在開始處理前顯示一個等待畫面,如顯示一條諸如“正在處理資料,請您稍候…”之類的資訊,如果能配合顯示動畫圖示和進度條,則效果更佳,它給使用者的感覺就會變成:程式正在“拼命”地工作,而且很快就會完成了。
  如果整個程式的啟動時間過長,也會造成同樣的情況。可以用類似的方法來解決:顯示一個“閃現”畫面(Flash Screen),在顯示過程中完成啟動處理,然後關閉“閃現”畫面,進入主程式(類似的啟動畫面)。需要說明的是,要顯示“閃現”畫面,最好使用Sub_Main()作為程式的入口。
  一些帶有許多窗體的程式在執行時不斷地裝載或解除安裝窗體,使用者感覺很“慢”,一個行之有效的方法就是在程式啟動階段將常用的窗體用Load語句預先裝入(不顯示),需要的時候只要用窗體的Show方法就能立即顯示出來。雖然這有可能增加程式啟動的時間和對記憶體的要求,但程式執行時的表現要快得多。
另外,使用者對於不受他們控制的程式操作大多比較反感,因此讓使用者有機會取消操作將會更體貼使用者。
  一般在某個關鍵操作前,可以顯示一個對話方塊,它至少包括兩個按鈕:“確定”和“取消”,這樣可以給使用者“反悔”的機會;在執行一些需要長時間才能完成的動作(比如資料複製)的過程中,在不影響資料性的前提下,可以提供一個“取消”按鈕,讓不耐煩的使用者有機會終止操作。在設計這種功能時要熟練使用DoEvents語句。

  以上只是本人在使用VB過程中的一些經驗和感受,希望能為廣大的VB程式設計師起到“拋磚引玉”的作用。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990086/,如需轉載,請註明出處,否則將追究法律責任。

相關文章