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

用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时,因为这时的回车键是起换行的作用。
微信官方在“公开课”上13个热点问题的解答摘要 MDCC 2014移动开发者大会10月开幕:你就是主角! 设计师该如何挣得一席之地? 回到未来:最热门的十大清洁能源技术公司 深度学习:未来机器人的进化途径 搜狗开源内部项目管理系统Cynthia,已被数十家企业采用 沃游戏新版本全新登场 好友PK根本停不下来 腾讯发布首款智能硬件,内部筹建孵化器鼓励创新 触控开发者平台:孕育“十亿开发者俱乐部” 《近匠》大新伙伴:大姨吗防晒小助手,帮你呵护女神 专访阿里云总裁王文斌:做出“用得爽”的工程产品 专访AMD全球副总裁潘晓明:2014全线发力,力争中国市场 搜狗开源内部项目管理平台Cynthia意欲何为? 深度解析浪潮新八路服务器TS860 支持Box2D,开源HTML5 2D游戏引擎FLAG 一周消息树:从程序员到架构师的方法与逻辑 【CTO俱乐部走进海尔】海尔的转型探索之路 十一问MongoDB CTO,谈NoSQL人气王的扩展、事务及运维 腾讯“创业•密码”开发者论坛 ChinaJoy引爆创业者关注 从F1赛车到智能手机,无线充电技术之崛起 助力梦想!MDCC免费为优秀App开发团队提供展位 为Symfony2和Redis正名,基于PHP的10亿请求/周网站打造 【聚焦API】教你如何选择最适合的NLP API服务商? 直接改应用!Flipboard开源iOS应用内调试工具FLEX 专访腾讯游戏运营总经理崔晓春:云时代游戏运营的变革与创新 嵌入式专家Bruce Douglass经验谈 门票销售过半 从2014微信开发者大会购票者特征说起 当来自金星的Devs碰上火星的Ops——共话应用扩展 移动平台市场占有率:Android首次赶超iOS 豌豆荚范怀宇 I/O大会总结:Android无处不在 轻博客始祖Tumblr:哈希以支撑2.3万Blog请求/秒 ======== 绝对好消息,activereport2.0已经release 了,cracker们出动啊~~~~~加油 ============= 关于什么才是真正的系统分析和系统分析员的讨论!——欢迎大家参加,进行善意地讨论!^&^ 今晚的球赛什么时候开始啊? 哪里有关于水平考试(高程)的模拟题的啊??? 为什麽还是不能显示中文呢? 怎样获取WIN2000的密码 在父窗体怎样画jpg格式的背景图? 如何注册MSComm控件????????? 如何解决这个问题啊?重赏啊!!!! 公告: 从现在开始封shines 111222 :)流芳斑主,结贴的工作要开始了,会很累啊!我代表大家先谢谢你了! 怎样改变MSHflexgrid中每条记录的背景颜色。急急急急急急急 各位,能不能给我讲一下“句柄”是怎么一回事? 唉,心情不爽 关于C++语法的问题? 灌水-----大学时的恶作剧(转载) "setdibs()"是什么来着,请指教,谢谢! 写注释不宜过头 这段代码错在哪里? 请大家预测一下比分(参与者都有分)开赛后就不算了,还有半个小时,赶紧着 写网络电话程序的讨论 最后一帖,贴完睡觉----如何在电梯里捣乱 怎样定制一个在程序中重用的组件?只能通过包方式吗? 寻寻觅觅 汉英计算机科技文章 互译!!有劳各位朋友费心帮忙找找 我靠!真TMD不爽,这个时候准老婆的老妈进了医院! 怎样调用*.db格式文件 谁知道哪儿有英汉互译,急急急急!!!! ISO 9001认证 VS CMM2 谁知道哪儿有《神秘的人月》下载? 为111222求情 怎样可以修改浏览器的标题? 怎样可以修改浏览器的标题1? 哪位能给我一个source insight 3.0的sn号? 怎样可以修改浏览器的标题2? 如何异步调用远程组件的方法? 哈哈!球赛开始了!我也不想去医院了!!!顶多明天挨顿骂! 上CSDN的有谁是七月份毕业,大家认识一下 我想问问,一个程序员的黄金年龄是多少? 如何由CRgn得到一组Polygon? 初学者请教一个小问题!急急急,尿都快急出来啦! 急急急急急急急急急急,用vb怎样知道COM口是不是打开着,能不能不用控件高分. 高手请看:20 分 我想给50 分,但是系统只让给20分,对不起大家了,有机会一定补上!!! 关于一个报表问题,急! 我需要一个Hackman的配套的Debugger,有谁知道哪有 现在就用VB.net开发商用程序可靠吗? 急急急急急急急急急急,用vb怎样知道COM口是不是打开着,能不能不用控件,怎样用API函数,高分。 中乌最新战报!!!!!!!!!! .....百丑图..... 高手请推荐几本好的C的书,华储里都是C++,C才几本而已。 如何隐藏光标,不仅仅是自己程序的光标? 现在还在看球并打算看下半场的来报到!!!!! 设方程2^x+x+2=0和方程log2 x+x+2=0的根分别为p和q,则p+q=?我想知道,作出y=2^x,y=log2 x,及y=-x-2的图像以后, 初一计算题解方程 分母带小数的或去分母的 小学五年级数学 解方程: 5×6-4x=7.6 求大神解答! 已知方程2^x+x+2=0的根为P,log2(x+x+2)=0的根为q,记f(x)=(x+p)(x+q)+2则A,f(0) 求20到方程(十道去分母)不要应用题10道去分母 10到化简求值 10道随便 (要求不带答案,不是应用题)来的及时有悬赏! 体验下列各数是不是方程5x-3=4x+2的解.(1)x=1,(2)x=5 2x-3/4=5/6 . 关于方程去分母的计算题5道. 如4x^3+5x^2-25=0的方程怎么解? 6.3-2x+4.5=7. 方程3分之2x-1=6分之2x-1 -1去分母得________ 1.把下列各方程变形为用一个未知数的代数式表示另一个未知数的形式 (1)4x-y=-1 (2)5x-10y+15=0 解答两道方程题目(1)3x²=2x (2) (x+4)²=5(x+4)(1)3x²=2x (2) (x+4)²=5(x+4) 这个方程怎么解 3分之2X-1=0.5 把下列各方程变形为用一个未知数的代数式表示另一个未知数的形式5x-10y+15=0请写出过程 请根据方程,x+2x+3x=72联系生活实际,编一道应用题(要求题目完整,题意清楚)明天就要交 试求方程x^2-2x-4|x-1|+4=0的四个根之和,当1<b<5时,再求方程x^2-2x-4|x-1|+b=0的四个根之和 把下列各方程变形为用一个未知数的代数式表示另一个未知数的形式(1)4X-Y=-1 ( 2 )5X-10Y+15=0 要用二元一次方程解,每一步都要解出来, 编写一道应用题,使它满足下列要求:1:题意适合一元一次方程2x+8=6-2x 2:所编应用题应完整,符合实际. 已知x=1是方程2-3分之1(a-x)=2x的解,求关于y的方程a(y-5)-2=a(2y-3)的解 把下列方程变形为用一个未知数的代数式表示另一个未知数的形式1.4x-y=-12.5x-10y+15=0 8道一元一次方程应用题先说明要有步骤不要只有一个答案 不用再步骤中插入解说。一定要用方程!1、两个仓库装粮食,第一个仓库是第二个仓库存粮的3倍,如果从第一个仓库中取出20吨放 8x-3=13,0.3x+0.4=0.7x-0.1,4x-5=9/2x-4 ,y-1/2+3=y+12/3-1 把下列各方程变形为用含一个未知数的代数式表示另一个未知数的形式3x-5t=3分之1,4分之y+1=.分之x+2 求一元一次方程答案 2x-1/6=5x+1/8带步骤的速度要快 当K为何整数时,方程组2X+Y=K和X+3Y=6的解是非负数 已知关于x的方程5x+3m=4x+1和2x+3m=5x+1的解相同,求(-3m)2011次方-(m-4/3)2012次方的值 求30-40道初一的一元一次方程练习题!不要应用题,像2x+1=x+3这种题不要 当K为何值时,方程组:2x+y=k x+3y=6的解是非负数看不懂 能说清楚点吗? 当m为何值时,关于x的方程5x-2m=4x-1的解是2x-3m=x的解的3\1? 方程ln(3*2^x-2)=log2的3+log2的1/3d的解为 解下列方程:2x+3y=4,3x-2y=11. 已知关于x、y的方程组2x+y=-7-a.x-3y=10a中,x是非负数,y是负数,求a的取值范围 方程log2(2^x+1)log2(2^(x+1)+2)=2的解为 要具体方程log2(2^x+1)log2(2^(x+1)+2)=2的解为 要具体过程 3x-2y=8,2x+3y=7 用加减消元法解这个方程 M为何数时,方程X+Y=M,5X+3Y=13的解是非负数? 方程log2(9ˇx-5)=log2(3ˇx-2)+2的解集是过程理由 已知3x+2y=17,2x+3y=13,则x-y=( ).方程2x+y=6的正整数解是( ) 已知关于x,y的方程级x+y=k 5x+3y=31的解xy均是非负数,求整数k的值用一元一次不等式解 x^log2(x+2)=8 解对数方程, 3x-2y=6 2x+3y=17 解方程 某项工程由甲队独做需要40天完成,如果由乙队先单独做10天,那么剩下的工程两队合作20天才完成 1求乙队单独完成这项工程所需的天数.2求两队合作完成这项工程所需的天数 求方程log2(x+4)=(1/3)^x的根的个数,并说明理由给点思路也行..请误乱写P言 省得没人问津 以为有人答了.] 0.01分之4-6x-6.5=0.02分之0.02+2x-7.5 已知关于x的方程2x-a/3-x-a/2=x-1与方程3(x-2)=4x-5有相同的解,求a的值实在搞不懂 方程log2(x+5)=4^x的实根的个数为RT!求教! 已知关与X的方程.2分之2M+X=4的解是方程3分之2X-3M-4分之X-1=6X-1的解的5 倍求这两个方程的解. 已知关于x的方程(2x-a)/3-(2-a)/2=x-1与方程3(x-2)=4x-5有相同的解,求a的值 方程log2(x+a)=3^x的实根的个数A.0B.1C.2D.3 (0.1x-0.2)/0.01-6.5=(0.02-2x)/0.02-7.5 解方程 方程:x+4x=45/7 方程log2(x+4)=x^(1/3)根的个数是几个 (4-6x)/0.01-6.5+(0.02-2x)/0.02-7.5(注意解方程按步骤先通分再去分母再移向的做法)sorry……(4-6x)/0.01-6.5=(0.02-2x)/0.02-7.5 五年级方程;6x6/1减4x=5/2是 方程log2(2^x+1)log2(2^(x+1)+2)=2的解 解方程4-6x/0.01+1=0.02-2x/0.02和2|2x-1|+1=5 五年级方程36-4x=24.解完后怎么检验?谢谢 方程log2(2^x+1)log2(2^(x+1)+2)=2的解为给答案就行 (3+0.2x)/0.2-(0.2+0.03x)/0.01=0.75 解方程 把过程解析出来,例如6(3x-2)-4(4x-3)=1然后18x-12-16x+12=1 2x=1 x=0.518什么的我都不知道哪里来的,
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn