用Visual Basic設計更好的使用者介面 (轉)
用Visual Basic設計更好的使用者介面 (轉)[@more@]
用設計更好的介面
有時在一個視窗中出現較多的控制件時,如果能嚮導式地建議使用者下一步該做什麼,不失為上策。
在Visual Basic的設計中,我們可以使用語句:.SetFaocus使我們希望的得到輸入焦點,舉個例子:在Form1中我們加入一個按鈕Command1和一個文字輸入Text1,雙擊按鈕控制元件,然後鍵入如下程式碼:
Text1.SetFocus
再按F5執行程式,您就會看到一單擊按鈕,文字框會立即取得輸入焦點。另外,我們還可以使用語句:Sendkeys "{TAB}"使下一個控制元件獲得焦點,但我們需要在設計時確定各控制元件的Index值。(在Properties視窗中)讓控制元件自己感知自己的工作已完成,而主動將焦點讓出,會使使用者覺得應用程式很聰明,也減少了使用者出錯的機會。
可是當焦點切換的兩個控制元件相隔有一定距離時,上述的方法有時也不足以引起使用者的注意,那麼一種好的解決方法是將滑鼠箭頭也移到控制元件上。可惜,VB並不支援滑鼠移動,那我們就求助,API函式SetCursorPos可讓我們如願。
下面是子程式MoveCursorOn,它可讓滑鼠移動到指定控制元件上方。
下列程式碼請放在declarations段中:
Type PoinTAPI
x As Integer
y As Integer
End Type
Declare Sub SetCursorPLib "User"(Byval x As Integer,Byval y As Integer)
Declare Sub ClientToScreen Lib "User"(Byval hwnd As Integer,IpPoint As PointAPI)
Declare Function GetParent Lib "User"(Byval hwnd As Integer)As Integer
然後建立一個新的子程式(ALT+N→N→鍵入子程式名MoveCursorOn),下面是子程式的程式碼:
Sub MoveCursorOn( As Control)
Dim Pt As PoinTAPI
Dim hparent As Integer
p.x=(Source.Left+Source.Width/2)/Screen.Twipsperpixel)
p.y=(Source.Top+Source.Height/2)/Screen.Twipsperpixel)
hparent=GetParent(source.hwnd)
ClientToScreen hparent pt
SetCursorPos pt.x pt.y
End Sub
使用該子程式很容易,例如我們想把滑鼠移動到按鈕Command1上,就可使用語句
Move Cursor On Command1
您會看到滑鼠箭頭已經指著按鈕Command1。
需要說明的是,千萬不要濫用該子程式。讓滑鼠自己滿屏亂飛,我們的使用者會感到失去對應用程式的控制,這是違反我們的初衷的。
在有數個輸入框的視窗中(這在應用程式中是很典型的),當使用者完成第一個輸入框的輸入後,總愛習慣性的加一個回車,希望輸入焦點落到下一個輸入框中(DOS中大多數應用程式是如此),可往往事與願違,這一回車卻觸發了擁有Default特性的按鈕,結果不是關閉了當前視窗就是又蹦出另一視窗。使用者睜大眼睛看著螢幕,“咦?!我到底做了什麼?”這是新使用者經常遇到的事情。
解決它其實很容易,只需在輸入框的KeyPress事件中加入如下程式碼:
IF KeyASCII=13 Then
KeyASCII=0
Sendkeys "{TAB}"
END IF
這樣,當使用者在這個輸入框中鍵入Enter時,就象鍵入TAB鍵時,焦點被移到下一控制元件上。但需注意,這種方法不適用於多行的TextBox,即TextBox的MultiLine特性設為True時,因為這時的Enter鍵是起換行的作用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992027/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Visual Basic 程式設計標準(1) (轉)程式設計
- Visual Basic設計圖形瀏覽器示例 (轉)瀏覽器
- 用Visual Basic自編小遊戲 (轉)遊戲
- 利用Visual Basic開發SAP介面程式初探-RFC
- 開發整合Microsoft Visual Basic for Application的應用系統(一) (轉)ROSAPP
- 在Visual Basic 中使用C++ 類 (轉)C++
- 在Visual Basic中終止Windows 95 (轉)Windows
- Visual Basic for ApplicationAPP
- Visual Basic的類對於物件導向的支援 (轉)物件
- 關於Visual Basic 6.0類開發(下) (轉)
- 關於Visual Basic 6.0類開發(上) (轉)
- Visual Basic.NET 中的語言新變化 (轉)
- 用扁平化的介面設計吸引使用者
- Visual Basic 14 的 14 大新特性
- 網站設計和圖形使用者介面(GUI)設計的不同 (轉)網站GUI
- 如何更好地設計手機軟體介面
- 特性(C# 和 Visual Basic) BASIC 快速建模特性的程式語言C#
- 自然使用者介面設計
- 轉賬介面設計
- 使用Visual Basic訪問資料庫幾個注意的問題 (轉)資料庫
- [譯] 為企業應用設計更好的表格
- Visual Basic 2005程式設計例項教程(奮鬥的小鳥)_PDF 電子書程式設計
- 設計更好的資料表格設計
- 使用者介面設計的7個方法
- 使用Visual Basic 6實現真正實用的多執行緒處理執行緒
- WIN32使用者介面設計基礎之Cursor篇 (轉)Win32
- 如何更好的設計 RESTful APIRESTAPI
- 如何更好的設計RESTful APIRESTAPI
- C#和Visual Basic之匿名型別C#型別
- Matlab與C語言程式的應用程式設計介面(轉)MatlabC語言程式設計
- 程式設計之路-介面美化 (轉)程式設計
- 更好地程式設計程式設計
- 什麼才是優秀的使用者介面設計
- 使用者介面設計--系統的當前物件物件
- 設計師教你如何在介面設計中“色”誘你的使用者
- 怎樣設計合適的介面(1) (轉)
- 怎樣設計合適的介面(2) (轉)
- 使用Microsoft Agent的COM介面程式設計(轉)ROS程式設計