回 帖 发 新 帖 刷新版面

主题:请教如何跳转焦点到指定的对象

表单form1中有pageframe1,在page3最后的焦点对象是一个"txt房产证号",想在这个文本框输入完之后调转到form1中的command1,我用的keypress事件,代码:

aaa=ALLTRIM(this.Value)
acd=LEN(aaa)  

IF nkeycode=13
IF  NOT EMPTY(aaa)    
  IF acd>11 OR acd<9
    Messagebox('产权证号码有误',16,'系统提示') 
    RETURN 0
  ENDIF 
ENDIF
ENDIF

但每次摁回车键,虽然提示出错,但却跳到了另一个对象上.请问怎样才能返回此文本框
  

回复列表 (共13个回复)

沙发

代码没问题

板凳

大概因为这个"txt房产证号",是这个page的最后一个对象,所以回车就会跳到另外的地方?

3 楼

应该不是。
调试一下,看看问题出在哪里。

4 楼

好象在文本框的事件中不能按要求跳转

5 楼

文本框的lostfocus 事件:


aaa=ALLTRIM(this.Value)
acd=LEN(aaa)  

IF  NOT EMPTY(aaa)  and (acd>11 OR acd<9) &&这句可以优化成 !=10
    Messagebox('产权证号码有误',16,'系统提示') 
    RETURN 0
ENDIF
thisform.command1.setfocus

6 楼

[quote]文本框的lostfocus 事件:
aaa=ALLTRIM(this.Value)
acd=LEN(aaa)
IF  NOT EMPTY(aaa)  and (acd>11 OR acd<9) &&这句可以优化成 !=10
    Messagebox('产权证号码有误',16,'系统提示') 
    RETURN 0
ENDIF
thisform.command1.setfocus
[/quote]

谢谢您的帮助,但是不起作用,只要加上了判断长度的语句,就会跳转到别的对象,而且不能优化成!=10,因为9位、11位也是合法输入。

7 楼

aaa=ALLTRIM(this.Value)
acd=LEN(aaa)  

IF nkeycode=13
IF  NOT EMPTY(aaa)    
  IF acd>11 OR acd<9   &&(可以写成!inlist(acd,9,10,11),我看两种写法都可,没必要优化)
    Messagebox('产权证号码有误',16,'系统提示') 
    this.setfocus    &&试试看,行不行?
  ENDIF 
ENDIF
ENDIF
thisform.command1.setfocus

8 楼

在 pageframe1 的 page3 上再添加一个 TEXT 控件,设 TOP属性为 -50
这个 TEXT 控件的 GotFocus 事件代码如下
this.Parent.txt房产证号.SetFocus 

txt房产证号的 keypress 事件代码如下
IF nKeyCode=13
IF LEN(ALLTRIM(this.Text))=10
  thisform.command1.SetFocus
ELSE
  Messagebox('产权证号码有误',16,'系统提示') 
ENDIF
ENDIF

9 楼

[quote]aaa=ALLTRIM(this.Value)
acd=LEN(aaa)  

IF nkeycode=13
IF  NOT EMPTY(aaa)    
  IF acd>11 OR acd<9   &&(可以写成!inlist(acd,9,10,11),我看两种写法都可,没必要优化)
    Messagebox('产权证号码有误',16,'系统提示') 
    this.setfocus    &&试试看,行不行?
  ENDIF 
ENDIF
ENDIF
thisform.command1.setfocus[/quote]

而且你这个语句,直接输入任何马上跳转^_^,这个也不行,只要有判断语句存在,就会调到另一个只读的文本框中.没有判断语句很正常.

10 楼

假设一下,lz的command1按钮是保存按钮.
lz意图判断输入合法性.
那为什么一定要在文本框的keypress里做文章?难控制,且浪费系统资源.
直接在保存里判断是否更容易?

如果判断了不合法:
thisform.pageframe1.page3.SetFocus
thisform.pageframe1.page3.text1.SetFocus
直接返回,如果你愿意还可以把错误文本加个色.

以上纯属一厢情愿.如果有出入,再讨论.

我来回复

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