用代码来产生一批checkbox控件,请高手相助.

xjb_netboy 2005-08-08 09:41:45
我编有一个程序,须要在form上产生一批checkbox控件,是动态的,checkbox的个数由数据库中数据产生,不知怎么编?
请高手相助.
...全文
196 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyaolz 2005-08-30
  • 打赏
  • 举报
回复
for next
for next
定义好边距,大小,就像画图一样简单
threenewbee 2005-08-13
  • 打赏
  • 举报
回复
CreateWindowEx()
xghim 2005-08-13
  • 打赏
  • 举报
回复
说明一下.arrshow()是我从保存的是否选中状态的数组.chkShow()是所有checkbox的控件数组.
xghim 2005-08-09
  • 打赏
  • 举报
回复
大小的话就比较难控制,但可以做到一行放固定几个,然后超过的就换行来显示.
Private Sub ShowChks()
Dim i As Integer, j As Integer

For i = 0 To UBound(arrTitles) 'checkbox标题数组
If i > 0 And ((i + 1) Mod 2) = 0 Then
Load chkShow(i)
chkShow(i).Caption = "显示" & Trim(arrTitles(i))
chkShow(i).left = 3200
chkShow(i).top = 240 + j * 270
Else
If i = 0 Then
j = 0
chkShow(i).Caption = "显示" & Trim(arrTitles(i))
Else
j = j + 1
Load chkShow(i)
chkShow(i).Caption = "显示" & Trim(arrTitles(i))
chkShow(i).left = 120
chkShow(i).top = 240 + j * 270
End If
End If

chkShow(i).Visible = True

If arrShow(i) = True Then '保存以前读取的是否选中的数组
chkShow(i).value = vbUnchecked
Else
chkShow(i).value = vbChecked
End If
Next
End Sub

在窗体load时.
Private Sub resizeForms()
Dim lngHeight As Long
Dim lngBottum As Long

lngHeight = CLng(chkShow(chkShow.Count - 1).top + chkShow(chkShow.Count - 1).height)

lngBottum = 825 '我的窗体上有一容器frame和两个按钮,这是me.height-frame.height

If lngHeight > fraQuery.height - 100 Then
Me.height = lngHeight + lngBottum + 100
fraQuery.height = Me.height - lngBottum
Me.cmdOk.top = Me.height - 795
Me.cmdCancel.top = Me.height - 795
End If

End Sub

这样你的窗体就能动态扩大到合适的高度.要想控制宽度也随着改变,那就自己再改改了。
xjb_netboy 2005-08-09
  • 打赏
  • 举报
回复
可是还有一个问题,怎样,在一行放几个控件,大小位置,要控制好。
xjb_netboy 2005-08-09
  • 打赏
  • 举报
回复
代友不全
xjb_netboy 2005-08-09
  • 打赏
  • 举报
回复
楼上的,代友不全, chkShow()
arrShow,这个过程的定义没有给出,调不通
DooDu 2005-08-08
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Form1.Controls.Add "VB.CommandButton", "cmdObj1", Frame1
With Form1!cmdObj1
.Visible = True
.Width = 2000
.Caption = "Dynamic Button"
End With
End Sub
byeshuang 2005-08-08
  • 打赏
  • 举报
回复
楼上的真快,正解
_西瓜皮_ 2005-08-08
  • 打赏
  • 举报
回复
先画出一个CHECKBOX,

并把
VISIBLE=FALSE
INDEX=0

'加载
For i=1 to 10
load checkbox(index)
checkbox(index).move 10,10
checkbox(index).visible=true
next

'卸载
for i = 10 to 1
unload checkbox(index)
next
fuxc 2005-08-08
  • 打赏
  • 举报
回复
用控件数组啊

然后这样:
load checkbox(index)
conrad_wan 2005-08-08
  • 打赏
  • 举报
回复
gz

809

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧