明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1489|回复: 4

SelectOnScreen没有效果是怎么回事

[复制链接]
发表于 2012-10-24 14:56:25 | 显示全部楼层 |阅读模式
初学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) = "<or"
FilterData(1) = "LWPolyline"
FilterData(2) = "line"
FilterData(3) = "or>"
'添加至选择集中,在选择过程中进行过滤
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"
发表于 2012-10-24 22:50:02 | 显示全部楼层
  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) = "<or"
  18.     FilterData(1) = "LWPolyline"
  19.     FilterData(2) = "line"
  20.     FilterData(3) = "or>"
  21.    
  22.     Me.hide
  23.    
  24.     '添加至选择集中,在选择过程中进行过滤
  25.     sset.SelectOnScreen FilterType, FilterData

  26.     MsgBox "sset.Count=" & sset.Count
  27.    
  28.     Me.Show
  29. End Sub
发表于 2012-10-24 23:44:03 | 显示全部楼层
在我这边调试没有出现楼主的问题,很正常的
 楼主| 发表于 2012-10-26 13:57:26 | 显示全部楼层
sscylh 发表于 2012-10-24 23:44
在我这边调试没有出现楼主的问题,很正常的

我自己解决了
好像是窗体应该hide,我没有把命令放对位置,谢谢喽~
 楼主| 发表于 2012-10-26 13:59:05 | 显示全部楼层
wylong 发表于 2012-10-24 22:50

Me是窗体名称么?我后来自己解决的方法是吧Me.Hide放在了定义选择集之前,然后就实现了,我也不太懂为啥了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 14:22 , Processed in 0.261839 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表