说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用Visual Basic设计更好的用户界面

HTML文档下载 WORD文档下载 PDF文档下载
用Visual Basic设计更好的用户界面
有时在一个窗口中出现较多的控制件时,如果能向导式地建议用户下一步该做什么,不失为上策。

在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时,因为这时的回车键是起换行的作用。
解读TDD的五大误区 Amazon 2012财年Q4财报:电子书业务增长70% 从暴风影音CTO到创业者:画中画相机话中话 为什么Android应用开发总要比iOS晚? 传奇VC马克.安德雷森:未来的企业什么样? 呼吁国会通过“创业签证”:奥巴马助力美国招揽海外人才 Surface Pro最低1019美元,价值究竟如何? 搜狗号码通产品经理谈微创新 数据和运营更关键 在线推荐系统是如何进行工作的? 欧朋浏览器上架App Store,iOS生态真要变天? 苹果iOS 6.1地图搜索API将替代谷歌Places Oracle向开发者承诺 称尽快修复Java安全问题 日本:开发者与投资人都不容忽视的移动市场 Unity 3D引擎:十大最火的插件推荐 重塑品牌 RIM更名黑莓 发布BlackBerry 10移动操作系统及新手机 NoSQL依赖的不只是大数据 还有应用程序架构的改变 新一代Apple TV增强内在组件 外观不变 加速Web开发的7款知名HTML5框架 Firefox OS开发者日来袭 5小时15款Web应用出炉! 微软发布Office 365家庭高级版 订阅费499元/年 鲍尔默对Office信心满满,十亿用户量触手可及 【多图】梦幻现实 IBM的未来超级计算机水世界 一名骨灰级工程师的OpenStack部署总结引发的讨论 解读DuckDuckGo搜索 百万点击也敢叫板Google 开发者成功学:扔掉你那些很sexy的想法 VMware严控ESXi API 引发用户和ISV被绑架担忧 布局O2O Facebook推出实物礼品卡 iSuppli:微软Surface RT实际销量远低于出货量 业界前三甲:App Store两个刷榜者,站了出来 极客无极限 一行HTML5代码引发的创意大爆炸 将服务器“弃”之荒野? 微软玩转露天数据中心 有哪位高手知道 哪位同志能提供软件工程电子文档教程下载的站点给我 菜鸟问题 简单问题 ASP里流媒体上传问题 初学VC得困惑 用第三方类MultipartRequest上传文件时,怎样实现根据用户填写的表单来决定上传路径 当我插入一个usb设备,系统装好驱动后注册表会有变化吗? 如何解决BUTTON重入的问题。 关于如何获得文件域中的文件名!!!!!!!!!!!!!!!!! 游戏编程初学者的作品.(弹球) 有没有汨罗的朋友呀?????? 在线等,触发器如何使用? 请问ActiveX controls event发出的消息怎样在container里接收 UNIX的cc编译结果: [请问]i586是什么意思?PPC又是什么?另外RedHat9无法安装的问题…… 不知道大家都玩不玩新闻组,给大家提供几个中文新闻组地址并讲一下使用方法,感觉比BBS好玩! 高分求助,现谢谢了。 !急关于CrystalReport 下面这样类型转换,居然可行, 我下面的问题解决了 ORACLE统计问题 腊肉是月老啊,单身的哥哥们找腊肉拉红线啊! 新闻搜索 using namespace std; 微星845 Ultra-C 支持P4赛扬2.0的吗? 请问哪里有关于cc的比较好的文档资料. 水晶报表的问题!!!!!!!!!!!! 关闭Jbuilder9时,会弹出微软拼音输入法的关于信息框,如何解决? TreeView的删除问题/// 怎样在delphi里使用windows定义的结构体 问个问题 顺便散分 sub main问题 郁闷,一夜起来信誉分掉了一大截,散分 请问UNIX下makefile 是怎么一回事 我在学习C#,不过基础不好,很吃力!中秋快乐! 如何防止文件被访问?谢谢! 今年中秋我爸收了一大堆礼物,价值估计不下于20万(我爸是税务局长),呵呵,太高兴了!再散点分给大家!今年中秋我爸收了一大堆礼物, ASP.NET有没有类似javascript中的window.confirm( )这样的方法,弹出对话框提示是否确认? C#builder里的CaliberRM有谁用过? 学ASP学的我晕了,大家给条路!!! 简单问题求助~~~~~~~~~~~~~~~ sql7.0到sql2000升级 图像存储及传输的计算问题? 为什么不能共享? 大家讲讲TreeMap的使用,回答好的立刻给100分!! 请问哪里有免费的或破解的查木马软件下载?? 在ASP.NET中能控制输入法吗?在.NET应用程序中有一INPUTLANGUAGE类,可以控制,在ASP.NET中能实现吗? 有谁做过用moden拨号连接,访问另一台pc,建立连接 如何让bean中的“输出”定位到网页中的特定位置? 请问以下这个项目如何设计?关于图形数据库系统的 怎么样浆肉才更嫩啊? 怎么浆肉比较嫩?谢谢了,大神帮忙啊 已知,如图,在平面直角坐标系 如图2,已知平面直角坐标系中.求画出来 如图 在平面直角坐标系中 已知点a(-2,0),b(2,0)画出几个等腰三角形abc,与顶点c的坐标 求七年级下的应用题和计算题 每种50道 有多少发多少 .越简单给的动西越高有多少道,给多少道 金屋藏娇阿娇怎么死的 葡萄糖氧化酶法测血糖用血清好还是血浆好? 张春望吧 张春望… 张春望~ 调查报告称澳移民目的地开始从欧美转向日本学生12万粒杏仁膏立体再现法国印芬兰计划实施新禁烟法 拟禁居民在阳台日本议员“告御状”欲破天皇不干政禁忌韩被日本强征女劳工状告三菱获胜 获赔调查报告称澳移民目的地开始从欧美转向会议记录爆奥巴马医改网站开通首天仅6芬兰计划实施新禁烟法 拟禁居民在阳台斯诺登不会赴德就监听事件作证 可在俄重大内政外交事奥巴马一问三不知 遭讽韩国法务部否认对检方调查国情院干政案林俊杰亲亲,今天你头晕了没?3条线路换乘,最高6元治早泄,医生竟开抗抑郁药“M100”品牌评选今盛大揭晓盼着爸爸回家过春节曝意甲三强齐涉假球案英澳留学新动向天气预报九旬太婆新衣捐给环卫工拨开雾霾 看国外环保专业不死身中锋至上洪荒白衣圣人重生成树丹铠择道成神斗武巅峰网游之富可敌国残唐重生李世民大发明炎黄战史之天地仁皇香炉峰旅游鹤山风景区旅游中国温泉博物馆旅游小九寨旅游灵悦寺旅游南山生态园旅游赤峰市植物园旅游红山国家森林公园旅游红瑶寨旅游黑龙江源头旅游洛古河村旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘