热情软件屋

 

如果两个相连的TXTEDIT都进行数据检查,发生死循环无法退出


编号:QA003931
建立日期: 2001年2月27日 最后修改日期:2001年11月25日
所属类别:

iu3:
    操作系统: windows98
    编程工具: vb6
    问题:
    我想在每一个TXTEDIT输入数据后检查其中的内容,我现在用的办法很笨拙,就是在LOSTFOCUS后检查,如果有错误就TXTEDIT1.SETFOCUS。但现在有一个问题就是如果有两个相连的TXTEDIT都使用这种方法来检查的话如果第一个TXTEDIT未输入正确的数据就按下TAB使焦点移到下一个TXTEDIT时会发生死循环无法退出,请问有什么更好的办法呢?另外有什么办法可以按ENTER键就使焦点跳到下一个TXTEDIT而不必使用TAB键呢?

回答:

    一般填完表格后都有一个确认按钮,可以在此按钮的事件中检查输入的值是否正确。在txtedit的keypress事件中,检测输入的每一个字符,如果 keyascii = 13(回车)的话就textedit2.setfocus。
    
    相关问题:
    QA000287 "如何按Enter键后移动输入焦点"
    
    李明的意见:
    我找到了一种很好的解决办法:
    具体是应用TEXT控件的VALIDATE事件。该事件在失去焦点时第一个发生。具体方法如下:
     1、设定要进行数据检查的控件的CASEUSVALIDATION为TRUE
     2、设定要进行数据检查的控件的VALIDATE的事件。在这里面加入代码。具体代码如下:
    Private Sub Text2_Validate(Index As Integer, Cancel As Boolean)
     jg =text2.text
     if 此处加入条件要求,如不符合要求 then
    response = MsgBox("时间超范围!", vbOKOnly + vbQuestion, "错误!") Cancel = True
    End Sub
    注:这种办法解决的很好。如需检查的TEXT控件很多,可以应用控件数组。很方便。此种方法可以同时检查回车键和鼠标产生的事件,很方便用户的使用。我在VB6.0下调试通过。
    
    sapphire的意见:
    建议: 其实只要用控件数组就可以了,因为如果是在一个数组中就不可能循环触发LOSTFOCUS事件。

此问题由少男回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio