怎样动态增加控件?

scxs 2006-03-07 10:35:31
需求:

有一TABLE中有IMAGE字段(图形值),我需要按TABLE中的行数在一FROM中显示出该字段的值在PICTURE控件中,请教如何按总行数而动态添加该控件。
...全文
144 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
思诺赛克 2006-03-15
up
回复
scxs 2006-03-15
我要读取的记录不是一条完整的,而是每一条记录中的某个字段值?
回复
scxs 2006-03-14
另外如何读书IMAGE类型的字段值(sql2000)
回复
scxs 2006-03-14
For index = 1 To rs.RecordCount
Load txtrkzd(index)
txtrkzd(index).Top = txtrkzd(0).Height
txtrkzd(index).Left = txtrkzd(index - 1).Left + txtrkzd(index).Width

txtrkzd(index) = rs.Fields(index) '''错误在此行

txtrkzd(index).Visible = True
Next

请问如何读取不同的数据呢?我试用 txtrkzd(index) = rs.Fields("item") 读出的数据是第一条记录并全部相同的
回复
kidc 2006-03-14
recordcount是记录总数 应该是 rs.fields.count

text是横排生成的

rs.fields是从0开始 如果你想一一对应 应该写成rs.fields(index-1) 这样读出来才是一条完整的记录!
回复
kidc 2006-03-13
For Index =1 To 3
Load txtRkzd(Index)
txtRkzd(Index).Top = txtRkzd(0).Height
txtRkzd(Index).Left = txtRkzd(Index-1).Left+txtRkzd(index).width
txtRkzd(Index).Visible = True
Next
回复
scxs 2006-03-13
可以给行代码参考吗?
回复
kidc 2006-03-13
使用控件数组,要注意的是需要一个种子,还有被 加载的控件Visible = True
回复
scxs 2006-03-13
为什么不能显示出控件来呢?
回复
faysky2 2006-03-07
请参考:根据记录数来动态添加Image控件

引用ADO(Microsoft ActiveX Data Objects 2.X Library)
Dim myImg() As Image
Private Sub Command1_Click()
On Error GoTo err
Dim cn As New ADODB.Connection, rs
'连接SQL:
cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=登陆用户名;Password=登录密码;Initial Catalog=数据库名;Data Source=yourSERVICE"
'连接Access:
'cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;Jet OLEDB:DataBase password=12345;""
cn.Open
rs.CursorLocation=adUseClient'设置客户端游标
rs.Open "select * from 表1", cn, 3, 2
If rs.Eof Then
Exit Sub
rs.Close
cn.Close
Set rs=Nothing
Set cn=Nothing
End If
ReDim myImg(rs.RecordCount-1)
dim i%
for i=0 to rs.RecordCount-1
Set myImg(i) = Form1.Controls.Add("vb.Image", "img" & i & "")
myImg(i).Width=20:myImg(i).Height=20
myImg(i).Left = 100 + 100 * i
myImg(i).Top = 100 + 500 * i
myImg(i).Visible = True
'myImg.BorderStyle=1
next
rs.Close
cn.Close
Set rs=Nothing
Set cn=Nothing
Exit Sub
err:
MsgBox err.Description
End Sub
回复
faysky2 2006-03-07
动态添加的控件,需要设置Visible=True才能看到,另外,位置也要设置一下(可以用Move方法),否则他们会堆在一起

你要根据记录数来添加多少个的话,先查询得到记录数,然后用循环来添加
回复
faysky2 2006-03-07
或者用Load方法:
先在窗体上放一个Picture1控件,设置它的Index属性为0

Private Sub Command1_Click()
Load Picture1(1)
Load Picture1(2)
......
End Sub
回复
faysky2 2006-03-07
动态添加控件:
Public myPic As VB.PictureBox

Private Sub Command1_Click()
Set myPic = Me.Controls.Add("VB.PictureBox", "myPic", Me)
myPic.Visible = True
myPic.Move 350, 500, 3000, 4000
myPic.ZOrder 0
End Sub
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2006-03-07 10:35
社区公告
暂无公告