| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1014 人关注过本帖
标题:按退出命令按钮,如何跳过控制代码?
只看楼主 加入收藏
wyslsm
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-3-29
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:8 
按退出命令按钮,如何跳过控制代码?
在文本框的Valid中:

IF not(thisform.text_khd.Value>0 and thisform.text_khd.Value<=5)
        messagebox("请重新输入","系统提示")
        thisform.text_khd.Value=0
        Return .f.
ENDIF
用代码控制文本框输入内。
不输入内容,直接按退出命令按钮,也提示要求重新输入。
怎样才能跳过文本框输入控制代码,按退出命令按钮退出表单?
搜索更多相关主题的帖子: 文本框 如何 
2015-04-02 20:41
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:4 
试试改在 LostFocus 事件:
IF !BETWEEN(this.value, 1, 5)
    NODEFAULT
    this.value = 0
ENDIF
2015-04-02 21:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
数据检查不要主動激活,变为被动的,检查代码无需写在valid事件中,写在一个自定义的方法中,在适当时候由别的代码去调用它,这样才可以控制什么时候检查、什么时候不检查。

[ 本帖最后由 TonyDeng 于 2015-4-3 01:34 编辑 ]

授人以渔,不授人以鱼。
2015-04-02 22:27
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:4 
进退有余

坚守VFP最后的阵地
2015-04-03 00:34
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:4 
奇怪的思路

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-04-03 07:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
CLEAR ALL
CLEAR
oForm = CREATEOBJECT("C_Form")
WITH oForm
    .Caption = "Test"
    .AutoCenter = .T.
    .Show
ENDWITH
READ EVENTS
CLEAR ALL
RETURN

DEFINE CLASS C_Form AS Form

    ADD OBJECT Label1  AS Label         WITH Caption = "数值1", Top = 5, Left = 5, Height = 25, Width = 60
    ADD OBJECT Text1   AS TextBox       WITH Value = 1, Height = 25, Width = 100
    ADD OBJECT Label2  AS Label         WITH Caption = "数值2", Value = 0, Top = 35, Left = 5, Height = 25, Width = 60
    ADD OBJECT Text2   AS TextBox       WITH Value = 0, Height = 25, Width = 100
    ADD OBJECT cmdExit AS CommandButton WITH Caption = "退出[\<E]", Height = 25, Width = 60
   
    PROCEDURE Text1.CheckValue()
        WITH This
            IF (.Value < 1) .OR. (.Value > 99)
                WAIT ThisForm.Label1.Caption + "输入错误!" WINDOW NOWAIT TIMEOUT 2
                .SetFocus
            ENDIF
        ENDWITH
    ENDPROC
   
    PROCEDURE Text2.GotFocus
        ThisForm.Text1.CheckValue
    ENDPROC
   
    PROCEDURE cmdExit.Click
        ThisForm.Release
    ENDPROC
   
    PROCEDURE Arrange
        WITH ThisForm.Text1
            .Top = ThisForm.Label1.Top
            .Left = ThisForm.Label1.Left + ThisForm.Label1.Width + 5
        ENDWITH
        WITH ThisForm.Text2
            .Top = ThisForm.Label2.Top
            .Left = ThisForm.Label2.Left + ThisForm.Label2.Width + 5
        ENDWITH
        WITH ThisForm.cmdExit
            .Top = ThisForm.Height - .Height - 5
            .Left = 5
        ENDWITH
    ENDPROC
   
    PROCEDURE Init
        WITH ThisForm
            .SetAll("FontBold", .T., "Label")
            .SetAll("Alignment", 1, "Label")
            .SetAll("SelectOnEntry", .T., "TextBox")
        ENDWITH
    ENDPROC
   
    PROCEDURE Activate
        ThisForm.Arrange
    ENDPROC
   
    PROCEDURE Resize
        ThisForm.Arrange
    ENDPROC
   
    PROCEDURE Click
        ThisForm.Text1.CheckValue
    ENDPROC
   
    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC
   
ENDDEFINE


授人以渔,不授人以鱼。
2015-04-03 18:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
代码很简单,不注释,自己仔细看看吧。

顺便提一下:关闭窗体,除了按表单上的【退出】按钮,还可以按右上角的叉叉,你无法知道用戶按哪个结束的窗体。


[ 本帖最后由 TonyDeng 于 2015-4-3 18:53 编辑 ]

授人以渔,不授人以鱼。
2015-04-03 18:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你这个问题的困难之处,是焦点离开那个文本框之后,哪个控件接收焦点,是无法预知的,而後續的控件,有些需要检测数据,有些不需要,所以,把方案专注于文本框本身,是没有用的,必须从後續的控件入手。这就是逻辑推理和证明。

授人以渔,不授人以鱼。
2015-04-03 19:16
asdf_123000
Rank: 4
等 级:业余侠客
威 望:1
帖 子:273
专家分:227
注 册:2012-12-20
收藏
得分:4 
授人以渔,不授人以鱼。
2015-04-03 21:57
快速回复:按退出命令按钮,如何跳过控制代码?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019505 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved