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

用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时,因为这时的回车键是起换行的作用。
基于OpenStack的私有云开发部署实践 亚马逊云平台的迁移过程 【干货】微信企业号开发资源集锦 CSS生日快乐:CSS之父Håkon Wium Lie访谈录 好友近2000万,绑定银行卡过千万,日会话近百万,招商服务号成功之道 一名程序员十年技术之路的思考与感悟 聚焦企业号、服务号典型案例 微信开发者大会深圳站正式开启 Objective-C之父Brad Cox访谈:我的编程之路 【先锋】完成B轮融资的TalkingData新商业模式:平台理念+跨界分析+技术开源 1/10计算资源,1/3耗时,Spark颠覆MapReduce保持的排序记录 Cookie已死,看Facebook、Google、Apple如何追踪用户 Clay.io基于AWS、Docker、HAProxy等的10X架构打造 经典服务/企业号案例来袭!2014微信开发者大会(深圳)亮点抢先看 移动应用云APICloud宣布完成A轮500万美金融资 从Apache Storm学到的经验教训 【CTO俱乐部走进天津】探讨如何成为技术团队管理者 不容错过!参加MDCC 2014移动开发者大会八个理由 你的钱被洗劫了么!APP安全问题来袭 10大最常见的数据库安全问题 南航微信服务号是如何炼成的? 超40项功能改进,虚幻引擎4.5正式发布! 【工具推荐】ER:可轻松构建一站式AJAX Web应用的开发框架 GraphLab:将大数据分析从理念运用到生产 支持Android 5.0:完全用Ruby的Ruboto框架迎1.2.0更新! 万物互联第一步:采用AllJoyn技术的智能硬件 【专访】敏捷专家何勉:让测试成为拉动组织敏捷实施的力量 Docker与微软合作 支持Windows Server 企业号热问热答——来深圳微信开发者大会聆听一线讲师的实战分享 AngularJS 1.3.0正式发布 超光速发展! 学个痛快!十款不容错过的Swift iOS开源项目 HTML5:助力智能电视生态实现新跃迁 VC中用COM如何传递一个大数组? ADODB.Recordset 错误 '800a0cb3' 请问:哪里有matlab的linux版本下载 初学者:这段程序在编译时为什么会出错?? 怎么知道一个光驱是可写的? 请问如何在vc中sdk方法建立数据库接口 为什么98出现许多乱码拉? ===菜鸟系列===:如何用VC获得www.csdn.net的IP地址?在线等候!!! 请教一道算法题!44的44次方!用C或C++实现! 关于文件上传的问题 lihonggen请进,多问1句 98二的CD-KEY给一个,马上给分 TC++图像编程小问题: ) 请教一下怎么解决~~ How to install VB6.0 Enterprise in Windows NT workstation4.0+sp6? ###########################简单的问题,救我! 关于open方法的问题??? =======是鲁迅错了?还是我错了?============= 如何实现写字板的replace功能? 新手问初级的问题:客户端使用什么数据库好? 为什么 CBC6 没有 ClassExplorer ??????? vc高手看过来!如何实现通过程序拨号(专线猫)请给出例子!急.急.急! 我的机器为何不能装2000 想知道搞Java多少银子/月呀? 哪里有Win2000英文版的下载啊 请教各位:用jsp中怎样知道用户浏览器的类型? 哪里有bmp文件格式的标准? 为什么sql server2000数据库里的数据在Win XP下不能显示中文啊? 回答出来给100分 在pb中用SetPicture(lb_image)当lb_image为空时picture的图片不变 急!!请问关于传递byte数组的问题 请教动态库的问题! 使用Delphi能够访问Windows2000 Active Directory? 请问在发邮件的时候怎么检查邮件地址真假!有无正确的发到! 简单之极的问题(两个,有关IE和IIS),但我还不会 那里有activethreed 3.0下载,快帮帮我呀! 开发OFFICE ADDIN 插件是否需要OFFICE SDK? 谁能给我一个用C++实现哈希表的例子? ◇◆◇上海有居住证的请进来拿分◇◆◇ 誰有SilverStream的中文資料,或哪有下載,謝謝. 在VB中如何显示声音VU强度的输出 How to install VB6.0 Enterprise in Windows NT workstation4.0+sp6? 想使用windump却总是说 error opening adapter 是什么意思?? 关于pb的一个问题 怎么控制Word为只读属性? 在VB中如何显示声音VU强度的输出 快来啊,怎么总是不行?帮帮忙把!!!!!!!!!!! 关于TreeView与数据库的问题? 如何找一份软件开发的工作 WorkThread和UserThread到底有什么区别? ASGLW进来 麻烦帮下忙,一个看上去好像很简单的问题,居然搞不出 已知a,b,c为自然数,a 设F1,F2分别是椭圆E:X2/a2+Y2/b2=1(a>b>0)的左右焦点,过点F1的支线交椭圆E于A,B两点,|AF1|=3|BF1|(1)若|AB|=4,三角形ABF2的周长为16,求|AF2|(2)若cos∠AF2B=3/5,求椭圆E的离心率 急 如图,已知AB=AC,BD⊥AC于点D,CE⊥AB于点E,BD,CE相交于点F,请说明BE=CD 椭圆X^2/25+Y^/9=1上一点M到焦点F1的距离为2,N是MF1的中点,则绝对值ON为多少? 椭圆x2/16+y2/9=1的焦点为F1,F2,过点F2的直线交椭圆与A,B.若|AB|=5,则|AF1|+|BF1|的值为 已知F1,F2是椭圆x*x/a*a+y*y/b*b=1(a>b>0)的左右焦点,A是椭圆上位于第一象限内的一点(1)直线AB方程 (2)若三角形ABF2的面积等于四根号二,椭圆方程(3)在(2)的条件下,椭圆上是否存在某点M使得 a b c为正整数 且a F1 F2为x/a+y/2=1的左右焦点,且向量AF1·AF2=0 若AF1的延长线交椭圆于B AB=AF2求e半小时内答上有追分椭圆方程x^2/a^2+y^2/b^2=z 如图,点D在AB上,点E在AC上,BE和CD相交于点O,AB=AC,∠B=∠C,试说明BD=CE.写出每一步得来的原因 椭圆x^2/9+y ^2/2=1的焦点为F1,F2,点P在椭圆上,若PF1的绝对值=4,则PF2的绝对值是多少?角F1PF2的大小为?椭圆x^2/9+y^2/2=1的焦点为F1,F2,点P在椭圆上,若PF1的绝对值=4,则PF2的绝对值是多少?角F1PF2的大小为? 初二地理 生物会考题 鲁教版的要图和答案急! 已知F1、F2是椭圆x^2/a^2+y^2/b^2=1(a>b>0)的左、右焦点,A是椭圆上位于第一象限内的一点,若AF1*AF2=0,圆的离心率等于根号2/2,三角形AOF2的面积为2*根号2,求椭圆的标准方AF1*AF2=0 是向量答案是X^2/16+y^2/8= 一个平方5厘米厚的C20混凝土需要多少沙子,水泥 a,b.c为正整数,且a小于b,b为质数,当a+b=c-a=1995时,求a+b+c=的最大值 设p为质数,证明:满足a2 =pb2的正整数a,b不存在.1.已知a,c满足等式a=2b+根号2,且ab+二分之根号2*c^2+四分之一=0,求a分之bc的值。2.求满足1998^2+m^2=1997^2+n^2(0 当x取哪些值时,分式x-2/3x+2的值是非负数 这题是怎么求出来-三分之二的- - 方程2x^-(「3 +1)x+m=0的两根为sinθ,cosθ,θ∈(0,2∏),求(1)sinθ/1-cotθ+cosθ/1-tanθ;(2)m 已知正整数a、b、c、d满足等式a/c=b/d=ab+1/cd+1.证明a=c,b=d 当x取什么值时,分式x-3分之-2的值为负数.谢谢 29和( )的乘积是质数 a.任何自然数 b.质数 c .1 从椭圆上一点A看椭圆两焦点F1 F2的视角为直角,AF1的延长线交椭圆于B,且AB=AF2,则椭圆的离心率为--? 已知0 已知两个自然数b c ,质数a 且a^2+b^2=c^2 求证:a<b ,c=b+1 椭圆x^2/a^2+y^2/b^2=1(a>b>0)焦点F1,F2,A椭圆上动点,弦AB,AC分别过F1,F2,当AC垂直于x轴时AF1=3AF2(1)求椭圆的离心率;(2)若向量AF1等于m倍的向量F1B,向量AF2等于n倍的向量F2C求m+n的值. 哪有初二下学期历史生物地理卷子 目前钢筋、水泥、中砂、生石灰、碎石、混凝土、木材、砖的市场价格钢筋25一下、水泥325 425,商品混凝土c20 c30 椭圆x^2/a^2+y^2/b^2=1(a>b>0)的左右焦点分别为F1,F2,A是椭圆上的一点,AF1垂直AF2原点O到直线AF1的距离为1/3|OF|1)证明a=根号2 b2)求t属于(0,b)使得下述命题成立:设圆 x^2+y^2=t^2上任意点M(X,Y)处的切线交 我明天就考了 砖坯和木材、石材和生石灰、钢筋和水泥,肯定含有的金属元素是? 已知F1 F2是椭圆的两个焦点,过F1且与椭圆长轴垂直的直线交椭圆于A.B两点,若三角形ABF2是等腰直角三角形求这个椭圆的离心率 当x=_____ 时,分式x的平方分之2-x的值是非负数 做吃的食物用的生石灰水,是水泥店卖的生石灰吗? 若F1,F2上椭圆X^2/25+Y^2/9=1的两个焦点,AB是过F1的弦,AB的绝对值等于8,则AF1的绝对值+BF2的绝对值=? 当x= ( ) 时,分式x-1/x的平方的值为负数 当x=( )时,分式x的平方-4/x+2无意义:当x=( )时,分式x的平方-4/x+2的值为零 水泥是生石灰吗? 设椭圆的两个焦点F1,F2,过F2作椭圆长轴的垂线交椭圆于点p,若三角形F1pF2为等腰直角三角形,则离心率? 如果a是质数,b是合数,下面( )的值一定是合数 A a+b B ab C ab÷6 D b÷a 锯子对什么(有水泥,木材,椅子,砖头) 椭圆x^2/25+y^2/4=1的两个焦点F1,F2,过F2的直线交椭圆与A,B两点,若|AB|=8,则|AF1|+|BF1|的值 如果a是质数b是合数()的值一定是质数.A,a+b.B,ab.C,ab÷b 2x的平方+7x=0,则x的值是 设椭圆的两个焦点分别为F1,F2,过F2作椭圆长轴的垂线交椭圆于点M,若三角形F1F2M为等腰直角三角形,求离心率 如果a是质数,b是合数,下面一定是质数的是( ) A、a+b B、ab C、ab除以b D、a除以b 7x的平方-2x=0想知道这样解对吗? 椭圆的焦点分别为F1,F2,过F2作椭圆长轴的垂线交椭圆与点P,若三角形F1PF2为等腰直角三角形 椭圆离心率为 a是质数,b是合数.下面的式子中,值一定是合数的为?A:3a+b B:ab C:ab/a D:(a/b)/(1/2b) 爱国古诗、故事1.搜集有关爱国的古诗名句抄写在下面.——————————————————————————————————————————————————————————— 求出所有不超过10000000,且具有下述性质的正整数n(n大于2):任何与n互质且满足1 若A是质数,B是合数.那么AB一定是合数的是( )Aa+(b+2) B(a+2)*b C(b+2)\d 爱国故事 诗歌回答故事用作文的方式!要短点!最好要一个爱国的小报!有的话那谢谢了!爱国故事要短又要有大至的内容! 如何证明正整数n若不能被2到根号n之间的任一整数整除,则n为质数 重点复习哪几本书 有没有爱国诗歌或故事呀!越快越好! 椭圆的两个焦点分别为F1,F2过F2作长轴的垂线交椭圆于点P若三角形F1PF2为等腰直角三角形,则椭圆的离心率e= 初二地理下册复习重点 每千克混凝土中含水泥、黄沙各多少千克? 如图所示,点D.E分别在AB,AC上,AB=AC,BD=CE,说明BE=CD 已知F1 F2为椭圆x^2/16+y^2/9=1的两个焦点 过点F2的直线交椭圆于A B 两点 且绝对值AB=5 求绝对值AF1+绝对为什么 绝对值AF1+绝对值AF2=2a=82b=6 |AB|=5 如果只过一个焦点的话那|AB|为5太大了 所以直线是过 工地用100千克水泥,150千克沙子,250千克石子配制一种混凝土.如果按同样的比例工地用100千克水泥、150千克沙子、250千克石子配制一种混凝土.如果按同样的比例配制8000千克混凝土,需要水泥、 已知F1、F2是椭圆x^2/a^2+y^2/b^2=1(a>b>0)的左、右焦点,A是椭圆上位于第一象限内的一点,点B也在椭圆上,且满足向量OA+向量OB=0(O为坐标原点),向量AF2*向量F1F2=0,椭圆的离心率等于/2(1)求直线AB的方
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘