乐筑天下

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

布局、列表框和其他L字。。

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-1 14:38:26 | 显示全部楼层
我不知道你想做什么。你想按列表中选择的布局进入paperspace吗?如果是这样,当您从列表中选择多个布局时,将产生问题
我之前提到过,你可以将标题栏过滤到一个选择集中,只对你选择的标题栏进行操作
如果存在块,该实用程序将返回该块,否则不返回任何内容。在对其进行操作之前,您必须验证该块是否确实存在
  1. Function GetBlockReferenceByLayout(ByVal strBlockName As String, ByVal strLayoutName As String) As AcadBlockReference
  2. 'setup variables
  3. Dim BLCollect As AcadSelectionSet
  4. Dim BlkRef As AcadBlockReference
  5. Dim GCode(1) As Integer
  6. Dim GData(1) As Variant
  7. Dim GPCode As Variant
  8. Dim GPData As Variant
  9. 'filter for selection set
  10. GCode(0) = 0
  11. GData(0) = "Insert"
  12. GCode(1) = 2
  13. GData(1) = strBlockName
  14. GPCode = GCode
  15. GPData = GData
  16. 'create selection set
  17. Set BLCollect = ThisDrawing.SelectionSets.Add("BLOCKREF")
  18. 'add items to selection set
  19. BLCollect.Select acSelectionSetAll, , , GPCode, GPData
  20. 'loop through all items in selection set
  21. For Each BlkRef In BLCollect
  22.     'compare layout name
  23.     If UCase(ThisDrawing.ObjectIdToObject(BlkRef.OwnerID).layout.Name) = UCase(strLayoutName) Then
  24.         'return the reference
  25.         Set GetBlockReferenceByLayout = BlkRef
  26.         Exit For 'exit the 'for' loop since we have the title block. This assumes only a single block in each layout
  27.     End If
  28. Next BlkRef
  29. 'delete the selection set
  30. BLCollect.Delete
  31. 'clear the variable
  32. Set BLCollect = Nothing
  33. End Function
用法应采用以下格式…
  1. Dim blkObject As AcadBlockReference
  2. Set blkObject = GetBlockReferenceByLayout("titleblock", "layout1")
  3. If blkObject = Nothing Then
  4. MsgBox "titleblock was not found in layout1"
  5. Else
  6. 'do other stuff here to blkObject
  7. End If
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-1 15:27:16 | 显示全部楼层
我不知道'我不想进入选中的布局,我已经强制程序在加载时进入paperspace,但我赢了'我现在不需要处理你的代码,但在此之前,它只需要转到正常绘图中使用的最后一个布局,这就是为什么我at用于正常绘图,这就是为什么我希望在列表框中突出显示当前布局,因为最初程序只做一个布局(当前布局)。但正如您提供的代码一样,我不#039;我不需要在布局中循环,我不#039;我不再需要它了,我所需要做的就是为列表框中没有选择布局设置错误陷阱。但是为了将来的参考和我自己对知识的渴望,我该如何对列表框进行编码以突出显示当前布局
出于某种原因,您在列表框中为全选提供的代码也赢得了'不再工作,它只选择一个-对代码的唯一更改是重命名控件并将其ListStyle属性更改为1-fmListStyOption。当我第一次使用它时,它工作得很好,但由于某种原因,它赢了;现在,即使我再次更改列表样式。。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-1 16:09:40 | 显示全部楼层
multiselect必须设置为frmMultiSelectMulti,否则将失败
要突出显示当前布局,在填充列表框时,请检查布局名称是否与当前添加的布局名称匹配。如果有,则突出显示。请记住,列表框索引中的列表框计数为-1
  1. With ListBox1
  2. 'populate the listbox
  3. For Each layout In layouts
  4.    .AddItem layout.Name
  5. 'if the current layout matches the layout just added then select it
  6.    If layout.Name = ThisDrawing.ActiveLayout.Name Then
  7.     ListBox.Selected(.ListCount - 1) = True
  8.    End If
  9. Next
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-2 05:48:22 | 显示全部楼层
再次感谢
  1. Private Sub LayoutLIST_Change()
  2. ReDim SelectedLayouts(0)
  3. 'loop through the listbox..
  4. For X = 0 To LayoutLIST.ListCount - 1
  5. 'if an item is selected
  6.     If LayoutLIST.Selected(X) = True Then
  7.     'then increment our array and add it to the array..
  8.         ReDim Preserve SelectedLayouts(UBound(SelectedLayouts) + 1)
  9.         SelectedLayouts(UBound(SelectedLayouts)) = LayoutLIST.List(X)
  10.     End If
  11. Next X
  12. End Sub
从列表框#039;s更改事件,选择您提供的所有代码:
  1. Private Sub SelectAll_CHK_Click()
  2. For X = 0 To LayoutLIST.ListCount - 1
  3.     LayoutLIST.Selected(X) = SelectAll_CHK.Value
  4. Next X
  5. End Sub

。当然,我需要从列表框中设置数组#039;s change事件,那么除了您第一次给出的方式之外,还有其他方式选择列表框中的所有条目吗
这是我在这个项目上的最后一个障碍,现在,我'我肯定我'我会找到其他方法来改进它或添加功能,但现在,就是这样
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-2 08:37:12 | 显示全部楼层
我不知道'我不明白你想要完成什么,但代码是按照发布的那样工作的。当您使用SelectAll\u CHK\u Click事件选择项目时,它将触发LayoutLIST\u Change事件,不是一次,而是每次更改一次。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 23:49 , Processed in 1.177456 second(s), 60 queries .

© 2020-2025 乐筑天下

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