急急!vb复选框问题,请高手指点
用access的数据库,库中有个表:goods表,表中的内容如下
产品id 产品类型 产品名称 产品上市时间
001 保健品 123 05/04
002 保健品 321 05/04
003 保健品 313 05/04
004 保健品 354 05/04
005 食 品 3321 05/04
006 食 品 3511 05/04
007 日用品 565 05/04
008 日用品 5465 05/04
009 日用品 985 05/04
010 日用品 594 06/04
... ..... .... .....这个表中的产品类型和产品名称都很多,我用一个frame控件,在这个控件里面动态设置复选框,每个复选框都指向一个产品类型,这样选择了后就在网格控件中显示出来,如:选择了保健品和食品,则在网格控件中就显示:
产品id 产品类型 产品名称 产品上市时间
001 保健品 123 05/04
002 保健品 321 05/04
003 保健品 313 05/04
004 保健品 354 05/04
005 食 品 3321 05/04
006 食 品 3511 05/04
达到这个效果,而在frame控件定位复选框时我是定位每页显示75个,即5行5列显示,不够就推到下页,这些都是我的想法,但具体该怎么实现呢?请高手不吝指教,我现在不懂的是:1、复选框如何与数据库连接?2、根据数据库这个表的产品类型的数目该如何动态增加复选框?(因为数目是不定的,所以复选框也固定不了,随时会变)3、判断复选框的行列位置?4、复选框该如何在frame里定位,成为有序排列?5、选中后的选中数据该如何传到网格控件去显示呢?以上都是小弟不懂之处,请各高手不吝指点,小弟刚刚才接触复选框,固希望各位能帮帮小弟解决这个燃眉问题啊!!!不胜感激!!!
[解决办法]
首先确认一下复选框是什么控件,checkbox?
给你说一下动态添加控件吧,我们用checkbox (chk) 作为例子
1.在编辑状态下托一个chk到form里面
2.copy paste,建立一个chk数组,这就是控件数组了
3.动态添加
dim i as integer
i=chk.ubound+1
load chk(i)
chk(i).left=..
chk(i).top=..
chk(i).visible=true
这样就添加上去了
排列的位置的话自己写上去就好了,每行每列给一个间隔,做个循环就好
frame是个容器,里面的坐标是相对坐标。也就是相对frame本身的坐标,0,0就是其左上角
chk的click事件里面你可做一个query,然后把结果显示到你得grid控件
最后告诉你,别着急。都不难。
[解决办法]
都是很基础的东西,看书即可解决
//1、复选框如何与数据库连接?
这个就是构建sql连接字符串
//2、根据数据库这个表的产品类型的数目该如何动态增加复选框?(因为数目是不定的,所以复选框也固定不了,随时会变)
用load语句或controls.add
//3、判断复选框的行列位置?
这个你根据你的规则结合复选框的left、top进行简单的数学计算即可
//4、复选框该如何在frame里定位,成为有序排列?
设置其left、top属性即可
//5、选中后的选中数据该如何传到网格控件去显示呢?
将rs和网格控件绑定即可
不会数据库操作的话,用数据窗体向导生成一个窗体,看看代码即可
另外,建议你看看:提问的智慧
[解决办法]
frame本身没有滚动条
翻页可以用tab控件,tab控件用的时候注意位置
你也可以把chk都放在picturebox里面,picturebox的size需要根据ck的多少不断增大,然后把picturebox放在frame里面,然后自己添上滚动条,写一些代码就好。
[解决办法]
多个问题就开多个帖,一个问题解决了就结贴
另外你那上面的说的多个check的问题,我觉得不如用ListView来实现,listview可以将每个Item前面都带上一个checke box。而且还自动带有滚动条,最好的是不会占用很多资源。如果你动态添加checkbox,当产品数量太多时,系统就会非常慢。