vf 中控件属性click事件代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【转载】vf常用代码集锦(上)

2010-07-20 16:04

◆文字滚动的效果

在表单添加一个计时器,把计时器INTERVAL设为30

如要走动的文字在标签1也就是LABLE1,

在计时器的timer里写下如果代码:

if bel1.left+bel1.width=0

bel1.left=thisform.width

else

bel1.left=bel1.left-1

endif

此时,LABLE1的文字将从右到左不停的走动,这时,如果要加一些效果,比如说是文字让它变颜色,一直闪烁的话。

可以再加“文字闪烁的效果”里的代码,两者结合,效果很好。

◆文字闪烁的效果

假设要闪烁的标签文字在Label1上。在表单添加一个计时器设Interval的值为30。在表单的Alwaysontop也就是表单属性的第一个值里声明变量,代码为:

Public I

I=0

在计时器Timer1的Timer写下代码

i=i+10

if i>=255*2

thisform.timer1.enabled=.t.

i=0

endif

if i>=255

bel1.forecolor=RGB(255*2-i,50,110)

else

bel1.forecolor=RGB(i,80,170)

endif

打开表单,就会出现文字闪烁了,如果你有兴趣,试试看

◆密码的设置

在表单中添加两个文本框,text1为用户名;text2为密码,添加两个命令按钮,设为确定和取消,数据表的结构两个字段:(name *用于存放用户名)和(mm *用于存放密码)

在确定按钮的click事件写入

if thisform.text1.value="".or.thisform.text2.value=""

=messagebox ("用户名或密码不能为空!",0+48,"警告!")

else

sele 1

use shujubiao\yonfu.dbf

if name=allt(thisform.text1.value).and.mm=all(thisform.text2.value)

use

thisform.text1.value=" "

thisform.text2.value=" "

wait"登陆成功,正在加载数据,等稍等" time 2 windows

thisform.visible=.f.

thisform.release

close all

do form zym.scx *写入您要执行的表单

else

use

messagebox("用户名或密码错误,请重新输入!",0+48,"警告!")

thisform.text1.value=" "

thisform.text2.value=" "

endif

endif

在取消按钮的click写入

close all

thisform.release

确记啊,不能把“确定”按钮设为Enter的模式,如果设定后,启动表单时,可是不用输入密码直接按确定就可以进入了。

◆密码修改源程序

表单中四个文本框,分别为用户名、密码、新用户名、新密码对应为:text1;text2;text3;text4。此表单所用的数据表和密码设置为同一张表。在表单的“确定”按钮click写入代码

if thisform.text1.value="".or.thisform.text2.value="".or.thisform.text3.value="".or.thisform.text4.value=""

=messagebox("存在空输入框,无法修改!",0+64,"警告")

else

use e:\xyz\表1.dbf*打开数据表

if not eof()

loca for name=allt(thisform.text1.value).and.mm=allt(thisform.text2.value)

if name=allt(thisform.text1.value).and.mm=allt(thisform.text2.value)

if messagebox("要保存修改吗?",32+4+256,"询问;")=6

repla name with thisform.text3.value,mm with thisform.text4.value

if messagebox("修改已完成,是否退出?",32+4+256,"询问")=6

use

thisform.release

endif

endif

else

messagebox("密码或用户名有误,请重新输入!",0+48,"警告")

endif

endif

endif

use

thisform.text1.value=" "

thisform.text2.value=" "

thisform.text3.value=" "

thisform.text4.value=" "

thisform.text1.setfocus

以上代码,您可以略做修改,做为密码修改的代码。

◆顶层表单的实现

大家不知道有没有过这样的一种经历,设为顶层表单的表单一运行,就会一闪而过,明明是该设的都设好了啊,呵呵,没事,这里,本人帮你解决问题。在表单的属性Activate Event里加上Read Even,然后再属性里的Release里加上一句Clea Even。记住,一定要在Release里加上这一句,不然,无法关闭表单的

你再试一下看看,顶层表单不会再一闪而过了。

◆一个程序多个顶层表单的问题

如果你的程序里要用到两个或两个以上的表单,你会发现,打开出来后的表单会没有办法关闭第一个,这时,就要用到隐藏了,如果你第一个表单运行后,进入第二个时,用_Screen.visible=Off。这时,在Windows的状态栏里,你会看到只有一个程序了,可是这时,如果你用Ctrl+Alt+Del来结束当前程序的时候,会发现,其实关闭的只是当前的表单,而被隐藏的表单没有被关闭,怎么来解决这个问题呢?没事,在第二个顶层表单,也就是你要关闭的表单的属性里面的Destroy Even加上一句:_Screen.Show 然后再追加一条Quit。好了,这里你再试一下看看,你会发现你用Ctrl+Alt+Del来结束程序的时候,在Windows任务进程里的程序被关闭了。到此,你的表单问题解决了

◆给顶层表单添加工具栏

1.在类库MyVcx中建立一个工具栏类MyToolBar,将工具栏的ShowWindow属性设置为1——最上层表单;

2.给顶层表单添加一个自定义属性TopToolBar;

3.编辑顶层表单的Activate event,输入以下代码:

This.TopToolBar=NewObject("MyToolBar","MyVcx")

This.TopToolBar.show()

This.TopToolBar.dock(0)

现在,你就可以享受顶层表单的工具栏了!

◆为表单建立功能键

对于数据输入人员而言,使用鼠标反而降低操作的效率。比方说,假设操作人员要新增数据时,除了可以使用鼠标按下新增按钮,也可以直接按下功能键[F2],在这种情况下,您觉得操作人员会使用什么方法呢?根据经验,由于数据输入人员对键盘上各类按键的配置位置相当熟悉,因此几乎所有的输入人员都会采用立即可按下的功能键,而不会去使用鼠标,因为他或她不需要将手离开键盘使用鼠标,操作的效率自然提高。所以,一个设计良好的系统,应该是既能使用鼠标操作,也能使用键盘操作。由此可见,为表单建立功能键的重要性。

要为表单建立功能键,关键在于KeyPress事件的使用。因为每当您在表单中按下并放开某一键时,表单的KeyPress事件便会被引发。显然您只需要在表单的KeyPress事件程序中,去拦截使用者在表单中所按下的每一个键,并且判断它是否是特定功能键,便能决定是否要执行特定的操作。

然而,这却引发了另一个值得讨论的问题,那就是并非只有表单才拥有KeyPress事件,许多控件也拥有KeyPress事件。比方说,您目前在表单中的某一TEXT输入框中,此时若按下并放开某一按键,所引发的将是此TEXT输入框的KeyPress事件,而表单的KeyPress事件将不会引发。因此也许您会问,我们是否必须为表单中所有控件的KeyPress事件程序都撰写判断使用者是否按下功能键的程序码?当然不是,因为这样不仅繁琐,而且还会降低效率。

要让表单的KeyPress事件拦截作用控件的KeyPress事件,也就是先引发所属的表单的KeyPress事件再引发作用控件的KeyPress事件,只要将表单的KeyPressView属性设为.T.即可。这样,您只需要在表单的KeyPress事件程序中撰写判断使用者是否按下建立功能键的程序码,而不需要在表单所内含的各个控件的KeyPress事件中写此代码。

几项说明:

1、由于VFP本身已经为各个功能键定义了按键集合,因此要使您所设定的各个功能键生效,首先必须清除VFP的按键集合定义。要清除VFP的按键集合定义,必须在表单的INIT事件程序中加入下面这道命令:

CLEAR MACROS

2、请务必将表单的属性设定为逻辑真值。

相关文档
最新文档