回 帖 发 新 帖 刷新版面

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

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

回复列表 (共23个回复)

21 楼

老种子好,最近忙着装修房子,很少上网,看到老种子在这里探究问题,很是高兴。又见老朋友了。20个贴子我都粗略地看了一下,未及细想。看到你的问题,我第一个想到的和Ilikefox先生的一样用valid方法,后看到cbl518老先生用Keypress事件,我觉得更可行一些,因为valid方法也是在控件将要失去焦点时发生的,但是怎样让它失去焦点呢?还是要用鼠标点击其它控件,所以不如让用户在录入完相应内容后直接按回车键好。你可以在keypress事件中调用valid方法,这样可能会两全其美!

22 楼

高老师好:
    首先祝贺你喜装新房!谢谢你的关注!
    这个问题处理的好,能使软件提高灵活性,能使使用者感到软件更人性化。
    我的软件里处理这种事件很多,用的办法很笨很笨的。
    就是在当前控件中的LostFocus中经过分析处理,再将焦点去向的指令用变量记下,由下一按顺序得到焦点控件的GotFocus根据指令再将焦点转到要去的控件。我那段代码最后的“查客户表5用=.T.”就是那个指令,在按顺序得到焦点控件的GotFocus中又写上下面代码:

IF 查客户表5用
  PZBDJ.PZBD.PZB.GRID1.COLUMN2.SETFOCUS
  查客户表5用=.F.
ENDIF

    实在是太笨太麻烦了吧?所以才提出来向各位请教,希望能找到捷径。
    谢谢高老师!谢谢各位老师!


23 楼

回17楼赵老师:
    这几天我在想,在我的20楼后半部分代码中也能看出,在LostFocus中焦点也不是都转不出去,也就是说有时能转出去,有时转不出去,但这个“有时”是何时就值得研究了。就事论事,这次是转到同一表单的其它控件上可以,转到另一表单上没行。是不是这样呢?有待于证实。
    所以呀这是一个很伤脑筋的问题,寄希望于本论坛高人提出高论。

我来回复

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