'可以通过WINAPI来实现,CreateWindowEx用于建立CHECKBOX,DestroyWindow用于删除CHECKBOX,MoveWindow 可以调整位置,IsDlgButtonChecked可以用来测试是否被选中:
Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Const BS_AUTOCHECKBOX = &H3&
Private Const WS_VISIBLE = &H10000000
Private Const WS_CHILD = &H40000000
Const CHECK_BASE_ID = 100
Dim m_hWnd(1 To 5) As Long
Private Sub cmdADD_Click()
Dim hwnd As Long
Dim T(1 To 5) As String
T(1) = "TEST1": T(2) = "TEST2": T(3) = "TEST3": T(4) = "TEST4": T(5) = "TEST5"
For I = 1 To 5
m_hWnd(I) = CreateWindowEx(&H4, "BUTTON", T(I), BS_AUTOCHECKBOX Or WS_CHILD Or WS_VISIBLE, 10, 10 + I * 20, 120, 13, Me.hwnd, CHECK_BASE_ID + I, App.hInstance, 0)
Next
End Sub
Private Sub cmdTest1_Click()
Dim bChecked As Boolean
bChecked = IsDlgButtonChecked(Me.hwnd, CHECK_BASE_ID + 1)
End Sub
Private Sub Form_Unload(Cancel As Integer)
For I = 1 To 5
If m_hWnd(I) <> 0 Then
DestroyWindow m_hWnd(I)
End If
Next
End Sub
我说一下具体情况吧:
dim rs as new Adodb.RecordSet
我有一个数据集fs
fs=rs.getrows()
dim i as integer
for i=0 to ubound(fs,2)
'我想创建checkbox控件数组check_okey
'能否直接创建的就是控件数组check_okey(i)?
'请告知!谢谢!