用Visual Basic設計更好的使用者介面

2021-06-16 01:14:40 字數 2004 閱讀 8521

visual

basic

設計更好的用

戶介面有時在乙個視窗中出現較多的控制件時,如果能嚮導式地建議使用者下一步該做什麼,不失為上策。 在

visual

basic的程式設計中,我們可以使用語句:object.setfaocus使我們希望的控制項得到輸入焦點,舉個例子:在form1中我們加入乙個按鈕command1和乙個文字輸入text1,雙擊按鈕控制項,然後鍵入如下**:

text1.setfocus

再按f5執行程式,您就會看到一單擊按鈕,文字框會立即取得輸入焦點。另外,我們還可以使用語句:sendkeys ""使下乙個控制項獲得焦點,但我們需要在設計時確定各控制項的index值。(在properties視窗中)讓控制項自己感知自己的工作已完成,而主動將焦點讓出,會使使用者覺得應用程式很聰明,也減少了使用者出錯的機會。

可是當焦點切換的兩個控制項相隔有一定距離時,上述的方法有時也不足以引起使用者的注意,那麼一種好的解決方法是將滑鼠箭頭也移到控制項上。可惜,vb並不支援滑鼠移動,那我們就求助api函式,api函式setcursorpos可讓我們如願。

下面是子程式movecursoron,它可讓滑鼠移動到指定控制項上方。

下列**請放在declarations段中:

type pointapi

x as integer

y as integer

end type

declare sub setcursorpos lib "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(source 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特性的按鈕,結果不是關閉了當前視窗就是又蹦出另一視窗。使用者睜大眼睛看著螢幕,「咦?!我到底做了什麼?」這是windows新使用者經常遇到的事情。

解決它其實很容易,只需在輸入框的keypress事件中加入如下**:

if keyascii=13 then

keyascii=0

sendkeys ""

end if

這樣,當使用者在這個輸入框中鍵入enter時,就象鍵入tab鍵時,焦點被移到下一控制項上。但需注意,這種方法不適用於多行的textbox,即textbox的multiline特性設為true時,因為這時的回車鍵是起換行的作用。

用Visual Basic製作安裝程式

安裝程式製作是做專案必不可少的一道工序,網上的安裝軟體很多,可以用五花八門來開形容了 在此筆者介紹乙個最簡單的安裝方法,就是用 自帶的打包程式進行打包,雖然比較普通,不過內部卻有不少竅門,相信這一點知道的人可能不多吧!請大家一定看到最後,好戲在後頭 好了,不廢話了,開始進入正題。執行打包嚮導,如下圖...

用Visual Basic實現點對點通訊

使用tcp協議時,如果需要建立乙個客戶應用程式,就必須識別伺服器的名稱或ip位址。應用程式的通訊埠隨時都將仔細監測對方發出的訊息,這是系統進行可靠連線的保證。一旦連線發生,任何一方都可以通過senddata傳送和接收資料,並借助getdata把自己的資料分離出來。傳送資料時,需要先設定客戶機的loc...

Visual Basic通用報表設計小結

本文對vb設計報表的方法作了乙個小結,大家都知道,在vb平台下製作報表大致有兩種選擇 使用vb自帶的data report控制項和借助第三方軟體。其中第三方軟體比較著名的就是ms excel和seagate公司的crystalreporter,以下就這三個方案進行詳細的討論。1.data repor...