• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用Visual Basic設計更好的用戶界面

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 12次 | 進入軟件測試論壇討論

    領測軟件測試網   有時在一個窗口中出現較多的控制件時,如果能向導式地建議用戶下一步該做什么,不失為上策。

    在Visual Basic的程序設計中,我們可以使用語句:Object.SetFaocus使我們希望的控件得到輸入焦點,舉個例子:在Form1中我們加入一個按鈕Command1和一個文本輸入Text1,雙擊按鈕控件,然后鍵入如下代碼:

    Text1.SetFocus

    再按F5運行程序,您就會看到一單擊按鈕,文本框會立即取得輸入焦點。另外,我們還可以使用語句:Sendkeys "{TAB}"使下一個控件獲得焦點,但我們需要在設計時確定各控件的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 "{TAB}"

    END IF

    這樣,當用戶在這個輸入框中鍵入Enter時,就象鍵入TAB鍵時,焦點被移到下一控件上。但需注意,這種方法不適用于多行的TextBox,即TextBox的MultiLine特性設為True時,因為這時的回車鍵是起換行的作用。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>