乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 67|回复: 4

SelectOnScreen没有效果是怎么回事

[复制链接]

2

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
13
发表于 2012-10-24 14:56:00 | 显示全部楼层 |阅读模式
初学VBA,想定义一个选择集,并且在屏幕上选择多线段和直线添加到这个选择集中
将selectonscreen的命令放在窗体的一个click事件中,F5运行程序,却不能对绘图空间中的图元进行选择,就直接进入到下一句
具体命令如下,大神帮忙分析下
  Dim sset As AcadSelectionSet
  Set sset = ThisDrawing.SelectionSets.Add("dxd")
  
  Dim FilterType(0 To 3) As Integer
  Dim FilterData(0 To 3) As Variant
  
'设置过滤器类型
FilterType(0) = -4
FilterType(1) = 0
FilterType(2) = 0
FilterType(3) = -4
'设置过滤数据
FilterData(0) = ""
'添加至选择集中,在选择过程中进行过滤
sset.SelectOnScreen FilterType, FilterData
  
  MsgBox "sset.Count=" & sset.Count
还没有进行选择就直接弹出信息窗口 sset.Count=0
-------------------------------------------------------------------------------------------------------------------
然后我在论坛上寻找有关selectonscreen的问题,按照一个帖子的说法对过滤器进行了如下的修改,但是还是不能再cad绘图界面上对图元进行选择,请问这是什么问题呢?
  Dim FilterType(0 To 3) As Integer
  Dim FilterData(0 To 3) As Variant
  FilterType(0) = 0
  FilterData(0) = "*PolyLine"
回复

使用道具 举报

1

主题

113

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2012-10-24 22:50:00 | 显示全部楼层
  1. Private Sub CommandButton1_Click()
  2.     Dim sset As AcadSelectionSet
  3.    
  4.     On Error Resume Next
  5.     ThisDrawing.SelectionSets("dxd").Delete
  6.     Set sset = ThisDrawing.SelectionSets.Add("dxd")
  7.     On Error GoTo 0
  8.    
  9.     Dim FilterType(0 To 3) As Integer
  10.     Dim FilterData(0 To 3) As Variant
  11.     '设置过滤器类型
  12.     FilterType(0) = -4
  13.     FilterType(1) = 0
  14.     FilterType(2) = 0
  15.     FilterType(3) = -4
  16.     '设置过滤数据
  17.     FilterData(0) = ""
  18.    
  19.     Me.hide
  20.    
  21.     '添加至选择集中,在选择过程中进行过滤
  22.     sset.SelectOnScreen FilterType, FilterData
  23.     MsgBox "sset.Count=" & sset.Count
  24.    
  25.     Me.Show
  26. End Sub
回复

使用道具 举报

6

主题

59

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2012-10-24 23:44:00 | 显示全部楼层
在我这边调试没有出现楼主的问题,很正常的
回复

使用道具 举报

2

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
13
发表于 2012-10-26 13:57:00 | 显示全部楼层

我自己解决了
好像是窗体应该hide,我没有把命令放对位置,谢谢喽~
回复

使用道具 举报

2

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
13
发表于 2012-10-26 13:59:00 | 显示全部楼层

Me是窗体名称么?我后来自己解决的方法是吧Me.Hide放在了定义选择集之前,然后就实现了,我也不太懂为啥了~
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-29 23:00 , Processed in 2.850185 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表