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

如何动态创建组件

楼主uncarman()2002-04-07 13:31:04 在 VB / 基础类 提问

在vb6中如何动态创建组件,比如我在一个frame中创建三个shape,并且绑定事件。  
  我这样写:  
   
  dim   shape1   as   shape  
   
  sub   CreateShape()  
  dim   i   as   byte  
  for   i=1   to   3      
    set   shape1=new   shape       '出错  
    shape1.left=frame1.left+i*100  
    shape1.width=100  
    shape1.height=100  
    shape1.top=frame1.top+50  
    shape1.container=frame1  
  next  
   
  end   sub  
   
  应该怎样写,并且能够使创建的shape组件能够绑定指定事件句柄,而且在事件句柄中能够区别这些组件而且加以操作,比如在其中一个shape单击鼠标更改其颜色。  
  请高手指点。;) 问题点数:80、回复次数:5Top

1 楼lxqlogo0(群子)回复于 2002-04-07 13:33:17 得分 0

把set变成load试试Top

2 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2002-04-07 13:34:45 得分 50

Add   方法(Controls   集合)  
               
   
  在   Controls   集合中添加一个控件并返回一个对该控件的引用。  
   
  语法  
   
  object.Add   (ProgID,   name,   container)  
   
   
   
  Add   方法(Controls   集合)示例  
  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  
   
  注意   上面的代码例子使用   !   作为一个语法要素。您也可以使用标准集合语法如   Form1.Controls("cmdObj1")   来引用该控件。  
   
  第二个例子使用   WithEvents   关键字声明一个   CommandButton   类型的对象变量,允许您编程该控件的事件。对象变量被设置为由   Add   方法返回的引用。要试验该例,把它的代码粘贴到声明部分并且运行该工程。  
   
  Option   Explicit  
  Private   WithEvents   btnObj   As   CommandButton  
   
  Private   Sub   btnObj_Click()  
        MsgBox   "This   is   a   dynamically   added   button."  
  End   Sub  
   
  Private   Sub   Form_Load()  
        Set   btnObj   =   Controls.Add("VB.CommandButton",   "btnObj")  
        With   btnObj  
              .Visible   =   True  
              .Width   =   2000  
              .Caption   =   "Hello"  
              .Top   =   1000  
              .Left   =   1000  
        End   With  
  End   Sub  
   
  第三个例子添加一个非引用控件到   Controls   集合。然而要编程这样一个控件的事件,必须声明一个   VBControlExtender   类型的对象变量,并把由这个方法返回的引用设置到该对象。然后使用   ObjectEvent   事件编程该控件的事件。  
   
  Option   Explicit  
  Dim   ctlExtender   As   VBControlExtender  
   
  Private   Sub   Form_Load()  
        Set   ctlExtender   =   Controls.Add("Project1.UserControl1",   "MyControl")  
        With   ctlExtender    
              .Visible   =   True  
              .Top   =   1000  
              .Left   =   1000  
        End   With  
  End   Sub  
   
  Private   Sub   extObj_ObjectEvent(Info   As   EventInfo)  
        '使用   Select   Case   编程该控件事件。  
        Select   Case   Info.Name  
        Case   "UserName"  
              '检查用户名值。  
              MsgBox   Info.   EventParameters("UserName").Value  
        '现在显示其他情况  
        Case   Else   '未知事件  
              '这里处理未知事件。  
        End   Select  
  End   Sub  
  Top

3 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2002-04-07 13:39:46 得分 30

Private   WithEvents   Shape1   as   shape  
   
  Private   Sub   Form_Load()  
          set   shape1=Controls.Add("VB.Shape",   "Shape1")  
          shape1.left=frame1.left+i*100  
          shape1.width=100  
          shape1.height=100  
          shape1.top=frame1.top+50  
          shape1.container=frame1  
           
  end   sub  
  Top

4 楼uncarman()回复于 2002-04-07 13:40:59 得分 0

改成load还是错。Top

5 楼uncarman()回复于 2002-04-07 14:10:34 得分 0

哈哈,好,散分Top

相关问题

  • 如何动态创建组件?
  • 动态创建组件
  • 如何在报表中动态创建组件和使用组件
  • 如何对动态创建地组件进行操作???救命!!!!!
  • 简单问题,如何动态创建组件
  • 请教,如何动态创建组件对象。送分!
  • 如何获取动态创建的组件句柄?????
  • 如何设置一个动态创建的TWebBrowser组件的parent
  • 如何动态的创建一个组件??
  • 动态创建组件的问题。

关键词

  • 控件
  • 组件
  • 语法
  • vb
  • top
  • shape
  • btnobj
  • ctlextender
  • withend
  • 事件

得分解答快速导航

  • 帖主:uncarman
  • zyl910
  • zyl910

相关链接

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

广告也精彩

反馈

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