有关窗口刷新问题
本帖最后由 作者 于 2004-10-1 14:59:52 编辑 <br /><br /> 为什么执行以下代码,绘图窗口不是立刻刷新为图层刷新后的效果。而是要等Form窗体关闭后才刷新?Private Sub CommandButton3_Click()<BR> On Error Resume Next<BR> For I = 0 To ThisDrawing.ModelSpace.Count<BR> If ThisDrawing.ModelSpace(I).Layer = "ABC" Then<BR> ThisDrawing.ModelSpace(I).Delete<BR> End If<BR> Next<BR> ThisDrawing.Layers.Item("ABC").Delete<BR>End Sub 在代码的最后加上 ThisDrawing.Regen acActiveViewport
<P class=constant>原因在于你使用的是模态对话框,AutoCAD只有在你的对话框消失之后进行一次自动刷新,为了实时刷新就必须强制其进行。 楼主的代码即使加上regen一句也删不干净,下面则可以,不知为何?Private Sub CommandButton3_Click()
On Error Resume Next
For Each OBJ In ThisDrawing.ModelSpace
If OBJ.Layer = "ABC" Then
OBJ.Erase
End If
Next
ThisDrawing.Layers.Item("ABC").Delete
ThisDrawing.Regen acActiveViewport
End Sub 本帖最后由 作者 于 2004-10-1 18:54:22 编辑 <br /><br /> 为什么要历遍?
这样就可以了
Sub ttt()
On Error Resume Next<BR><BR>Dim ss As AcadSelectionSet<BR>ThisDrawing.SelectionSets("*TEST*").Delete<BR>Set ss = ThisDrawing.SelectionSets.Add("*TEST*")<BR>Dim ft(0) As Integer, fd(0)<BR>ft(0) = 8: fd(0) = "ABC"<BR>ss.Erase<BR>End Sub<BR> 谢谢,那为什么楼主的代码在我的机器上会删不掉?还有要得到模型空间的对象是
Thisdrawing.Modelspace(I)呢,还是Thisdrawing.Modelspace.Item(i)? 两个是一回事,因为Item是Thisdrawing.Modelspace的默认属性
试试For I = 0 To ThisDrawing.ModelSpace.Count - 1 早试过了,还是不行 我不得不说,众人的智慧是无穷的
谢谢你们了
页:
[1]