回 帖 发 新 帖 刷新版面

主题:[请教] 控件上的LostFocus方法程序有没有控制下一焦点的功能?

编程时通常希望能根据录入的内容,在LostFocus写代码进行判断,确定下一焦点到哪里去。
可每每总是失败,因而觉得LostFocus方法已经无力控制下一焦点了,要到按顺序的下一控件的GotFocus去解决,这样编程很复杂。
请教各位高师:LostFocus方法程序有没有控制下一焦点的功能?如果没有,还有没有更好的补救方法?
致以诚挚的感谢!

回复列表 (共23个回复)

沙发

LostFocus方法,是当一个对象失去焦点时发生。
关键是已经是失去焦点,也就是讲焦点已经转移到其它对象上了~
才发生该事件!

板凳

1 控件由于用户的操作而失去焦点
2 选中另一个控件或在另一个控件上单击
3 或在代码中用 SetFocus 方法更改焦点。

3 楼

十分感谢cbl518大师的解答!
那么我还是要想,在某一控件录入完回车后,是前一控件先失去焦点,还是下一控件先得到焦点?谢谢!

4 楼

前一控件先失去焦点
下一控件在得到焦点
你的意图是什么???

5 楼

在 keypress 事件写入:
if nKeyCode=13

NODEFAULT
this.Parent.grid2.SetFocus

endif

6 楼

我的意图是:
一个表单上有若干个TEXT或其它控件,在TEXT1录入结束回车后,TEXT1能根据所录入的内容,确定下一焦点去另外哪个控件,而不一定按顺序去下一控件。

7 楼

在文本框 keypress 事件写入:
if nKeyCode=13

NODEFAULT
this.Parent.指定的text.SetFocus

endif

8 楼

[quote]在 keypress 事件写入:
if nKeyCode=13

NODEFAULT
this.Parent.grid2.SetFocus

endif[/quote]
这种方法觉得有两点不太适宜本人。
一是本人通常是在LostFocus中写大量的代码处理录入完的后事,移到keypress去写会不会出现其它问题?
二是考虑用户有时不用回车结束,而是录完用鼠标点其它控件结束,这样就可能不经过if nKeyCode=13了。

9 楼

这种方法觉得有两点不太适宜本人。
一是本人通常是在LostFocus中写大量的代码处理录入完的后事,移到keypress去写会不会出现其它问题?

源代码还保留在,LostFocus 事件中!其功能不会改变的!


二是考虑用户有时不用回车结束,而是录完用鼠标点其它控件结束,这样就可能不经过if nKeyCode=13了。

如果,用鼠标点其它控件结束,那么焦点就会自动转移到,用户所点的控件上。以上代码无影响的!

10 楼

老兄试试看就知道了!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册