If everything goes well, the user has one object selected with its 4 properties captured. The dialog is floating. Make sure you have set the TopMost property of the Form to True.
At this stage the user goes out and selects the destination objects and clicks the Match button. The code for the Match button first stores the destination selection set:
oSSetDestination = oDoc.SelectSet
If oSSetDestination.Count <= 0 Then
MsgBox("No destination object(s) selected.", MsgBoxStyle.Information, Me.Text)
If nothing was selected, the user is informed as above.
If there are any objects selected i.e. selection set count is greater than 0, each destination objet type is checked:
ElseIf oSSetDestination.Count > 0 Then
For cnt As Integer = 1 To oSSetDestination.Count
oDestin = oSSetDestination.Item(cnt)
If TypeOf oDestin Is SolidEdgeFrameworkSupport.Line2d Or _
TypeOf oDestin Is SolidEdgeFrameworkSupport.Arc2d Or _
TypeOf oDestin Is SolidEdgeFrameworkSupport.Circle2d Or _
TypeOf oDestin Is SolidEdgeFrameworkSupport.Ellipse2d Or _
TypeOf oDestin Is SolidEdgeFrameworkSupport.EllipticalArc2d Or _
TypeOf oDestin Is SolidEdgeFrameworkSupport.BSplineCurve2d Or _
TypeOf oDestin Is SolidEdgeFrameworkSupport.Point2d Or _
TypeOf oDestin Is SolidEdgeFrameworkSupport.Group Then
Further, the check box state of each property is checked if user has selected to match any of those:
If chkLayer.Checked Then
oDestin.Layer = sLayer
End If
If chkColor.Checked Then
oDestin.Style.LinearColor = iColor
End If
If chkWidth.Checked Then
oDestin.Style.Width = dWidth
End If
If chkLType.Checked Then
If Trim(sLtype) <> "" Then
oDestin.Style.DashName = sLtype
ElseIf Trim(sLtype) = "" Then
oDestin.Style.DashName = "Continuous"
End If
End If
and accordingly each property of the destination object is assigned values of those stored from the source.
Finally, the selection set is emptied.
oSSetDestination.RemoveAll()
The following video demonstrates the working of Match Properties:
Download just the program or executable file.
Download the VB.Net (VS 2010, .Net 4.0) solution files.
Modify and use the code as you desire, guilt-free, even commercially.
No comments:
Post a Comment