' http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/SnapEditorForm/0048000000m7000000/
'/ <summary>
'/ Turns on or turns off the Edit Sketch snap agents by adding or removing them
'/ </summary>
Private Sub AddSketchSnapAgents()
'give anchor snap (i.e. vertex snap) priority to get more accurate snap tips while snapped to a vertex
Dim t As Type = Type.GetTypeFromProgID("esriControls.EngineAnchorSnap")
Dim obj As System.Object = Activator.CreateInstance(t)
Dim snapAgent As IEngineSnapAgent = DirectCast(obj, IEngineSnapAgent)
snapEnvironment.AddSnapAgent(snapAgent)
'edge sketch edges
t = Type.GetTypeFromProgID("esriControls.EngineSketchSnap")
obj = Activator.CreateInstance(t)
snapAgent = DirectCast(obj, IEngineSnapAgent)
snapEnvironment.AddSnapAgent(snapAgent)
'perpendicular to edit sketch
t = Type.GetTypeFromProgID("esriControls.EnginePerpendicularSnap")
obj = Activator.CreateInstance(t)
snapAgent = DirectCast(obj, IEngineSnapAgent)
snapEnvironment.AddSnapAgent(snapAgent)
End Sub
/// <summary>
/// Adds, and hence turns on, Edit Sketch snap agents
/// </summary>
private void AddSketchSnapAgents()
{
//give anchor snap (i.e. vertex snap) priority to get more accurate snap tips while snapped to a vertex
Type t = Type.GetTypeFromProgID("esriControls.EngineAnchorSnap");
System.Object obj = Activator.CreateInstance(t);
IEngineSnapAgent snapAgent = (IEngineSnapAgent)obj;
snapEnvironment.AddSnapAgent(snapAgent);
//edge sketch edges
t = Type.GetTypeFromProgID("esriControls.EngineSketchSnap");
obj = Activator.CreateInstance(t);
snapAgent = (IEngineSnapAgent)obj;
snapEnvironment.AddSnapAgent(snapAgent);
//perpendicular to edit sketch
t = Type.GetTypeFromProgID("esriControls.EnginePerpendicularSnap");
obj = Activator.CreateInstance(t);
snapAgent = (IEngineSnapAgent)obj;
snapEnvironment.AddSnapAgent(snapAgent);
}
記事
