注册 登录
明经CAD社区 返回首页

crazylsp的个人空间 http://www.mjtd.com/?369855 [收藏] [复制] [分享] [RSS]

日志

做个实验用按钮的控件数组显示图中块名

已有 1085 次阅读2013-12-9 11:47 |系统分类:开发| excel

用MSForms控件的按钮可以控件数组,但由于是excel的控件,石乎不兼容CAD,是不是要建个Frame框架再放置按钮什么的? 
'VBA动态生成控件数组并能响应事件 '用户窗体UserForm1:

Private colCB As New Collection '表单按钮为集合
Private ctlCB As 类1  '类实例

Private Sub UserForm_Initialize()

    Dim comd As Control  '使用集合来保存这个类的实例
    Dim I As Integer
    Dim blk As AcadBlock '定义块
        
    I = 1
    
    For Each blk In ThisDrawing.Blocks
      
      Set comd = Me.Controls.add("Forms.CommandButton.1", "cmdtest" & I) '增加表单按钮数组CommandButton1cmdtestI I为变量

      With comd
       .top = 2 + 25 * (I - 1)  '表单按钮行位置
       .height = 20             '表单按钮高度
       .width = 100             '表单按钮宽度
       .Left = 2                '表单按钮列位置
      End With

      If Mid(blk.name, 1, 1) <> "*" or Mid(blk.name, 1, 2) <> "A$"Then
      
        comd.Caption = I & ": " & blk.name  '表单按钮标题
      
        Set ctlCB = New 类1  '新建类实例
        ctlCB.Init comd, Me  '将控件赋给类实例
        colCB.add ctlCB      '新建类增加表单按钮
        Set comd = Nothing   '注销表单按钮
      
        I = I + 1 
      
      End If
      
   Next
    
End Sub

'VBA动态生成控件数组并能响应事件 '用户窗体UserForm1:

Public Sub Info(ctl As msForms.CommandButton)

   MsgBox "你点击了: " & ctl.Caption
   
End Sub

类1
Private WithEvents m_CB As msForms.CommandButton
Private m_Form As UserForm1

'初始化控件绑定到类
Public Sub Init(ctl As CommandButton, frm As UserForm1)
  Set m_CB = ctl
  Set m_Form = frm
End Sub

'点表单按钮返回的信息类型。
Private Sub m_CB_Click()
  
   m_Form.Info m_CB
   
End Sub

'注销表单和按钮
Private Sub Class_Terminate()
  Set m_CB = Nothing
  'Set m_Form = Nothing
End Sub

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-23 20:38 , Processed in 0.222543 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部