您的位置:程序门 -> vb -> 控件



combo控件style为2,从数据库取出数据后如何放入combo里


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


combo控件style为2,从数据库取出数据后如何放入combo里[已结贴,结贴人:l6208128]
发表于:2007-08-16 12:50:22 楼主
限制操作者输入数据,只能选择从动态表里取出的数据,style为2时,取出的数据不能写入combo控件,报“text属性为只读”,style为1时,那又能输入数据了,这个怎么做
发表于:2007-08-16 14:30:001楼 得分:0
combobox的style为2时,要想改变text属性,必需保证文本包含在选项里面,所以必需先将所有选项加入combobox,然后再去改变text属性。
发表于:2007-08-16 14:36:012楼 得分:0
怎麼不可以呢
    combox.text=combox.list(0)
发表于:2007-08-16 14:36:453楼 得分:0
但是我试过了,在代码里不能将style属性改掉,查了msdn,上面说在设计时可修改,在运行时就不能修改,那怎么修改text属性呢
发表于:2007-08-16 14:38:354楼 得分:0
gxqianqin(會飛)   (   )   信誉:100     2007-08-16   14:36:01     得分:   0    
 
 
      怎麼不可以呢
    combox.text=combox.list(0)
   
 
但是,combox控件的style为2时,怎么写进去,这个时候应该时只读了
发表于:2007-08-16 15:20:305楼 得分:0
这个只读是对用户而言的,你用程序还是能控制他改变的,但前提是改变的文本要包含在控件的选项中,否则会出错的
发表于:2007-08-16 15:35:126楼 得分:0
比如我的combo的style是2
我原来是这样想的,
        combo2.style   =   0
        select   *   from   table  
        combo2.text   =   rst
        combo2.style   =   2
先吧style为0,将数据写如combo,然后再将style变回2,报了“不能给只读属性赋值”
发表于:2007-08-16 15:59:107楼 得分:10
首先不要在运行的时候改变style,这个在运行时是无法改变的
其次,已经说了,改变的text必需在选项里要有,比如你要让text= 'ccc '必需要让items里有这个选项才行,所以在之前要combo2.items.add   "ccc "
发表于:2007-08-16 16:02:318楼 得分:10
style=2

dim   i   as   integer
private   sub   command1_click()
if   i   > =   combo1.listcount   then   i   =   0
combo1.text   =   combo1.list(i)
i   =   i   +   1
end   sub

private   sub   form_load()
combo1.additem   "asdf1 "
combo1.additem   "asdf2 "
combo1.additem   "asdf3 "
combo1.additem   "asdf4 "
combo1.additem   "asdf5 "
combo1.additem   "asdf6 "

end   sub
发表于:2007-08-16 16:11:379楼 得分:0
之前?是什么时候,不会是在设计的时候吧,我用的是动态的表,里面的数据是经常的改动,而且在设计是,style已经是2了,如果运行一段时间后,比如我的数据库多了一条数据,当按下dropdown事件的时候,我就要去数据库查询了,然后把所有的数据写到combo里去,如果是旧数据,我可以在设计时就把老的数据写到list里去,但是后面新产生的数据查出来就写不进去了吧。
不知道楼上的兄弟怎么弄,最好能给个实例,谢谢
发表于:2007-08-16 17:06:2910楼 得分:0
基本上就是阿勇那样,   可以直接combo1.text   =   "asdf2 ",但如果你的数据在频繁变化,那肯定是要每次去查询数据库的,然后用循环添加到combobox选项里
发表于:2007-08-16 17:16:2311楼 得分:0
是啊,那就不能把style=2了,除非退出目前的画面,重新load的时候,再去读数据库一边,写到combo中,
那如果操作者再当前画面新增了一条数据,这个时候combo里是看不到这条新数据吗,因为style为2,就写不进吗
我关键就想实现这个,能再别的地方输入进去,然后可以通过点击combo,就像那些输入画面一样,text控件保存完数据后,可以通过点击combo控件查看数据库里所有的条目
发表于:2007-08-16 21:19:1412楼 得分:0
我说楼主,为什么你就不试试呢,在任何时候都可以用combo时写数据啊!!
dim   i   as   integer

private   sub   command2_click()
combo1.clear

combo1.additem   "asdf1 "
combo1.additem   "asdf2 "
combo1.additem   "asdf3 "
combo1.additem   "asdf4 "
combo1.additem   "asdf5 "
combo1.additem   "asdf6 "

end   sub

private   sub   command1_click()
if   i   > =   combo1.listcount   then   i   =   0
combo1.text   =   combo1.list(i)
i   =   i   +   1
end   sub

这次不是在load中了吧!!当你查询完数据库时,可以执行如command2_click事件过程一样的事儿!
发表于:2007-08-17 08:36:5013楼 得分:0
好了,谢谢,看了楼上的兄台的实例,然后看了看自己的程序,因为其中有个模块部分当时是直接拷过来的,原来里面有一句是combo1.text=“”,一直以为程序是正常了,所以从来没去看,估计原来的那块是sytle为1的时候做的


快速检索

最新资讯
热门点击