我在最上面有定义:
Dim WithEvents Check1 As CheckBox
Dim WithEvents Check2 As CheckBox
Dim WithEvents Check3 As CheckBox
Dim WithEvents Check4 As CheckBox
Dim WithEvents Check5 As CheckBox
这是代码: Dim myname As String
Dim checktop As Integer
checktop = 150
For i = 1 To Data2.Recordset.RecordCount
myname = "Check" & i
Me.Controls.Add "VB.Checkbox", myname, Frame1
With frmCourse(myname)
.Left = 400
.Top = checktop
.Width = 1200
.Height = 350
.Caption = Data2.Recordset.Fields(1)
.Visible = True
End With
checktop = checktop + 400
Data2.Recordset.MoveNext
Next i
请帮忙看看,谢谢!!!
Dim WithEvents Check1 As CheckBox
Dim WithEvents Check2 As CheckBox
Dim WithEvents Check3 As CheckBox
Dim WithEvents Check4 As CheckBox
Dim WithEvents Check5 As CheckBox
这是代码: Dim myname As String
Dim checktop As Integer
checktop = 150
For i = 1 To Data2.Recordset.RecordCount
myname = "Check" & i
Me.Controls.Add "VB.Checkbox", myname, Frame1
With frmCourse(myname)
.Left = 400
.Top = checktop
.Width = 1200
.Height = 350
.Caption = Data2.Recordset.Fields(1)
.Visible = True
End With
checktop = checktop + 400
Data2.Recordset.MoveNext
Next i
请帮忙看看,谢谢!!!
不行的话,试式控件数组,那样肯定会相应事件的(通过index属性)。
Private WithEvents nc As CheckBox
Private mCol As New Collection
Private Num As IntegerPrivate Sub Command1_Click()
Set nc = Form1.Controls.Add("VB.checkbox", "image" & Num)
nc.Visible = True
nc.Move 2000 * Num
mCol.Add nc
Num = Num + 1
End SubPrivate Sub nc_Click()
MsgBox "NewCheck"
End Sub
Dim tmp As String
tmp = Data1.Recordset.Fields(2)
If InStr(Data1.Recordset.Fields(2), "1") <> 0 Then
Check1.Value = 1
Else
Check1.Value = 0
End If
If InStr(Data1.Recordset.Fields(2), "2") <> 0 Then
Check2.Value = 1
Else
Check2.Value = 0
End If
If InStr(Data1.Recordset.Fields(2), "3") <> 0 Then
Check3.Value = 1
Else
Check3.Value = 0
End If
If InStr(Data1.Recordset.Fields(2), "4") <> 0 Then
Check4.Value = 1
Else
Check4.Value = 0
End If
If InStr(Data1.Recordset.Fields(2), "5") <> 0 Then
Check5.Value = 1
Else
Check5.Value = 0
End If
所有我只会用这种办法,
各位大侠,有别的方法请留下,谢谢!!!