| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3674 人关注过本帖
标题:请问关于下拉列表框,输入的数据不是该数据项的值时就变成空白
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:5 
以下是引用C469143在2012-9-17 11:06:46的发言:

请教具体代码

我也是刚接触 写个短短的代码吧 不过没用到数据源 下拉列表需要手动初始化
程序代码:
**************************************************
*-- 主函数
SET CLOCK on
SET TALK OFF
frmMain = CREATEOBJECT("C_Form")
frmMain.show
READ events
RETURN
*
*-- 程序结束
**************************************************


**************************************************
*-- 类:           C_Form (d:\vfp\td\12.vcx)
*-- 父类:  form
*-- 基类:    form
DEFINE CLASS C_Form as Form
    _screen.minbutton = .f.
    _screen.MaxButton = .f.
    caption = "组合框"
     width = 300
    height = 200
    autocenter = .T.
   

    ADD OBJECT com_box as ComboBox WITH ;
               height = 20, width = 50,;
               top = 80,  left = ThisForm.width/2 - 80
              

   PROCEDURE init
        WITH  = 0
        for i = 1 to 5
        a = 64 + i
        .list(i) = chr(a)
        endfor
        .inputmask = .displayvalue
        ENDWITH
   endproc
  

  

    PROCEDURE com_box.interactivechange
        if not Between(Asc(), 65, 69)
        MessageBox("上帝保佑"+)
        else

           MessageBox("菩萨保佑"+)     

        endif

    ENDPROC
   

    PROCEDURE destroy
        a = MESSAGEBOX("真的要退出吗", 1 + 32, "确认")
        IF a == 1
        CLEAR EVENTS
        ELSE
        RETURN
        ENDIF
    ENDPROC
*
*-- EndDefine: C_Form
************************************************** 


梅尚程荀
马谭杨奚







                                                       
2012-09-17 15:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
    _screen.minbutton = .f.
    _screen.MaxButton = .f.
你这两行干嘛的?不要这样用!

授人以渔,不授人以鱼。
2012-09-17 15:22
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-9-17 15:22:38的发言:

    _screen.minbutton = .f.
    _screen.MaxButton = .f.
你这两行干嘛的?不要这样用!
书上也有这个。。。
貌似是关掉最大最小按钮 有什么危险吗?

梅尚程荀
马谭杨奚







                                                       
2012-09-17 15:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
_SCREEN是VFP主窗口的对象实例,你关掉的是VFP窗口上的按钮,不是这个类代码定义的窗口的按钮。在类代码的定义中,不应该直接操作不是自己生成的对象,这是基本原则。

授人以渔,不授人以鱼。
2012-09-17 15:35
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 24楼 TonyDeng
哦 这样啊
不过发现个奇怪的现象  _screen.minbutton = .f.
                      _screen.MaxButton = .f.
放在C_Form下能关掉 这个类的最大最小按钮 但是不能关掉主屏幕的
不过还是按你说的基本原则来吧 我直接写改成了
minbutton = .f.
MaxButton = .f.


梅尚程荀
马谭杨奚







                                                       
2012-09-17 15:43
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
程序代码:
**************************************************
*-- 类:           C_Form (d:\vfp\td\12.vcx)
*-- 父类:  form
*-- 基类:    form
DEFINE CLASS C_Form as Form
   minbutton = .f.
   MaxButton = .f.
    caption = "组合框"
     width = 300
    height = 200
    autocenter = .T.
  


    ADD OBJECT com_box as ComboBox WITH ;
               height = 20, width = 50,;
               top = 80,  left = ThisForm.width/2 - 80
..........
这样可以吗


梅尚程荀
马谭杨奚







                                                       
2012-09-17 15:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
可以。
写在那个位置,属于初始化赋值,不一定在运行阶段执行的,这种写法,应该是未知结果(类似于未定义行为),尽量避免。

授人以渔,不授人以鱼。
2012-09-17 15:47
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:10 
我从自己的程序中取出部分代码,(不可能完善)仅供楼主参考:
combo.rar (2.42 KB)

收到的鲜花
  • C4691432012-09-18 08:13 送鲜花  3朵   附言:我很赞同

相互学习,互相交流,共同提高。
2012-09-17 18:01
C469143
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2012-9-16
收藏
得分:0 
回复 28楼 qjbzjp
正是我想要的,谢谢
2012-09-18 08:11
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
程序代码:
SELECT 市名
LOCATE FOR ALLTRIM(MC)==ALLTRIM(THIS.TEXT)
IF NOT FOUND()
   INSERT INTO 市名 VALUES (ALLTRIM(THIS.TEXT))
ENDIF
this.Parent.text1.Value=this.TEXT
28楼代码可修改如上

[ 本帖最后由 sdta 于 2012-9-18 09:17 编辑 ]

坚守VFP最后的阵地
2012-09-18 09:15
快速回复:请问关于下拉列表框,输入的数据不是该数据项的值时就变成空白
数据加载中...
 
   



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

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