怎样动态创建控件数组?
怎样动态创建控件数组?
比如说:我想点一下Cmd_AddNewControl 时
创建一个checkbox控件Check_okey,当再次点击时,则创建的是Check_okey控件数组?
问题点数:100、回复次数:7Top
1 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2002-04-26 13:11:10 得分 0
好像不可能Top
2 楼okey(okey)回复于 2002-04-26 13:21:58 得分 0
我说一下具体情况吧:
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)?
'请告知!谢谢!
nextTop
3 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2002-04-26 13:28:35 得分 50
没必要这么做吧
先在窗体上放一个check_okey(0),设为不显示
到需要显示时再显示
Top
4 楼zihualive(子华)回复于 2002-04-26 13:29:09 得分 10
能实现这个功能吗好像不行吧。
祝你好运!Top
5 楼505(五五)回复于 2002-04-26 13:29:26 得分 20
你可以这样:
先在窗体上放置一个checkbox,将其Index设为0,Visible设为False
点一下Cmd_AddNewControl 时:
i = i + 1
Load Check1(i)
Check1(i).Visible = True
Check1(i).Top = i * 500'任定
Top
6 楼wangsitao(飞猪)回复于 2002-04-26 13:33:45 得分 20
agree with : zyl910(910:分儿,我来了!)
先在窗体上放一个check_okey(0),设为不显示
到需要显示时再显示
接着
for i=1 to ubound(fs,2)
'我想创建checkbox控件数组check_okey
load check_okey(i)
check_okey(i).visibled=true
'再设定他的位置
nextTop
7 楼jyu1221(天同)回复于 2002-04-26 14:48:13 得分 0
'可以通过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
Top




