using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.DataSourcesGDB;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Display;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
IPropertySet pPS = new PropertySetClass();
IWorkspaceFactory pWF = new SdeWorkspaceFactoryClass();
pPS.SetProperty("Server","8B63691CDAE4488");
pPS.SetProperty("Instance", "5159");
pPS.SetProperty("Database", "TestElementEdit");
pPS.SetProperty("User", "sde");
pPS.SetProperty("Password", "zhangjun1130");
pPS.SetProperty("Version", "sde.default");
IWorkspace pWs = pWF.Open(pPS, 0);
IFeatureWorkspace pFWs=pWs as IFeatureWorkspace;
IFeatureClass pFC = pFWs.OpenFeatureClass("ElementEdit");
IFeatureLayer pFL = new FeatureLayerClass();
pFL.FeatureClass = pFC;
axMapControl1.AddLayer(pFL);
}
private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
{
if (radioButton3.Checked == true)
{
IPolygon pPolygon = (IPolygon)axMapControl1.TrackPolygon();
IGraphicsContainer pGC = (IGraphicsContainer)axMapControl1.Map;
IActiveView pActiver = (IActiveView)axMapControl1.Map;
IPolygonElement pPolygonElement = new PolygonElementClass();
IElement pElement = (IElement)pPolygonElement;
IElementEditVertices pElementEditVertices = (IElementEditVertices)pPolygonElement;
pElement.Geometry = pPolygon;
pGC.AddElement(pElement, 0);
pActiver.Refresh();
pElementEditVertices.MovingVertices = true;
//ISelectionTracker pST=null;
//pElementEditVertices.GetMoveVerticesSelectionTracker();
}
}
private void axMapControl1_OnMouseUp(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseUpEvent e)
{
if (radioButton1.Checked == true)
{
IGraphicsContainer pGC = (IGraphicsContainer)axMapControl1.Map;
IGraphicsContainerSelect pGCS = (IGraphicsContainerSelect)pGC;
IEnumElement pEE = pGCS.SelectedElements;
IElement pE = pEE.Next();
IElementEditVertices pEEV = pE as IElementEditVertices;
pEEV.MovingVertices = true;
ISpatialFilter pSF = new SpatialFilterClass();
pSF.GeometryField = "Shape";
pSF.Geometry = pE.Geometry;
pSF.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
IFeatureSelection pFS = axMapControl1.Map.get_Layer(0) as IFeatureSelection;
pFS.SelectFeatures(pSF, esriSelectionResultEnum.esriSelectionResultNew, false);
(axMapControl1.Map as IActiveView).Refresh();
ISelection pS = axMapControl1.Map.FeatureSelection;
IEnumFeature pEF = (IEnumFeature)pS;
int i = 0;
IFeature pF = pEF.Next();
while (pF!= null)
{
i++;
pF=pEF.Next();
}
MessageBox.Show(i.ToString());
}
}
}
}