VB中的lostfocus是什么意思,怎么用啊?
private sub text1_lostfocus()
dim a
a=VAL(text1.text)
if a<0 or a>100 then
beep
text1.text=""
text1.setfocus
print "重新输入"
else
print a
end if
这段代码里的lostfocus,和setfocus有什么用啊?焦点是什么意思干什么用的啊?
这段代码有个command控键,但是这个控键里没有代码啊,为什么按这个控键,还能起作用呢?
我晕啊~~
分不多~请懂的哥哥们回答吧~ 展开
LostFocus 事件
此事件是在一个对象失去焦点时发生,焦点的丢失或者是zhidao由于制回表键移动或单击另一个对象操作的结果,或者是代码中使用 SetFocus 方法改变焦点的结果。
用户的代码的意思是,在Text1失去焦点的时候,判断Text1输入的数字是否在1和100之间,如果不是权则发出警告音并在窗口输出“重新输入”,同时Text1内容清空并重新获得焦点等待正确的输入;否则就输出正确的数字。
扩展资料:
VB中有一个LostFocus事件和一个GotFocus事件,看名字似乎是当当前窗口失去焦点或得到焦点时触发的事件。但在实际应用时却发现当这个窗口和Windows中其他窗口进行切换时并没有触发这两个事件,现在解析一下这两个事件。
Form_LostFocus、Form_GotFocus是指的是一个MDI主父窗体调用了多个子窗体,当这些子窗体之间切换时,就触发这两个事件;当一个窗体中的多个文本框,鼠标点击另一个文本框时,也会触发这两个此事件,文本框在 Windows内部实际上也是一个窗口。
Windows内部是通过消息来触发事件的,这两个事件在Windows内部对应的消息是WM_NCACTIVATE,当该消息的wParam为0时表示是失去焦点,为非0时表示得到焦点。
比如你的例子,Text1_LostFocus(),这个sub中的代码,在Text1失去焦点的时候会被运行。
(失去焦点简单理解:Text1可以输入的时候就是还有焦点,当你鼠标点到其它地方去了或者按Tab键等等,让Text1不再可以输入,这样它就失去焦点了。)
你的Command控件虽然没有事件代码,但是点击command控件后焦点会移到command控件上,Text1就失去焦点了,然后就会触发Text1_LostFocus()事件。
Text1.SetFocus就是通过代码执行强制让Text1重新获得焦点。
你的代码的意思是,在Text1失去焦点的时候,判断Text1输入的数字是否在1和100之间,如果不是则发出警告音并在窗口输出“重新输入”,同时Text1内容清空并重新获得焦点等待正确的输入;否则就输出正确的数字。
此事件是在一个对象失去焦点时发生,焦点的丢失或者是由于制表键移动或单击另一个对象操作的结果,或者是代码中使用 SetFocus 方法改变焦点的结果。
SetFocus 方法
将焦点移至指定的控件或窗体
你的代码是当Command控件获得焦点时即发生Text1_LostFocus事件,对Text1内输入的数字进行判断,符合就赋值给变量a,并输出到窗体
Print a