CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  控件

怎样动态创建控件数组?

楼主okey(okey)2002-04-26 13:08:28 在 VB / 控件 提问

怎样动态创建控件数组?  
  比如说:我想点一下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

相关问题

  • 如何动态创建控件数组?
  • VB如何用代码动态的创建控件数组?
  • 动态创建Label控件数组,第一次动态创建控件,请指教!内有代码!
  • 怎样动态的创建窗体和控件(注意:不是数组)
  • 动态创建控件数组问题:请问能实现这个吗??
  • 关于创建控件数组!
  • Delphi中如何创建控件数组
  • 怎样创建控件数组?
  • 怎样动态创建控件数组?如:只有一个图标,需要时动态增加。
  • 请问如何在PB中动态创建控件或用户对象数组?且该数组的大小是不定的!谢谢各位大虾了。。。

关键词

  • 控件
  • check
  • okey
  • 控件数组
  • 窗体
  • byval
  • 创建
  • checkbox
  • 显示
  • visibled

得分解答快速导航

  • 帖主:okey
  • zyl910
  • zihualive
  • 505
  • wangsitao

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo