admin 管理员组

文章数量: 1087829


2024年3月8日发(作者:pcre是否安装)

首先新建一个WInForm,然后向其中添加一个combobox,一个DataGridView,以及label、statusbar等(界面使用第三方控件制作而成),combobox用于显示所有的图层,statusbar显示查询到的要素的字段个数以及鼠标点击处的坐标。代码如下:usingSystem;c;entModel;;g;;;stem;;ry;ls;y;UI;abase;urcesRaster;namespaceTools{publicpartialclassfrmIdentify:Form{AxMapControlaxMapControl=null;IFeaturepFeature;intselectedIndex=0;publicfrmIdentify(ontrolaxmapcontrol){InitializeComponent();ontrol=axmapcontrol;//设置axmapcontrol的CurrentTool属性为空,更改鼠标样式tTool=null;ointer=interIdentify;}privatevoidfrmIdentify_Load(objectsender,EventArgse){for(inti=0;i

//设置dataGridView1的列数和列头Count=2;dersWidth=60;="属性表";s[0].HeaderText="字段";s[1].HeaderText="属性值";edIndex=0;s[1].Width=s[0].Width-63;//设置dataGridView1、textBox1不可编辑ly=true;}publicvoidOnMouseDown(intbutton,doublex,doubley){if(_Layer(selectedIndex)isIRasterLayer){IPointpMouseDownPoint;pMouseDownPoint=newPointClass();rds(x,y);lReference=lReference;ExcuteIdentifyByPoint(pMouseDownPoint);}else{h();h();IEnvelopepEnvelope=null;pEnvelope=ectangle();//当仅点击鼠标,没有拖动时if(y==true){IPointpMouseDownPoint;pMouseDownPoint=newPointClass();rds(x,y);lReference=lReference;IGeometrybufGeo;ITopologicalOperatorbufferPoint=pMouseDownPointasITopologicalOperator;bufGeo=(/250);pEnvelope=pe;ExcuteIdentifyByEnvelope(pEnvelope);}else

{ExcuteIdentifyByEnvelope(pEnvelope);}}ShowLocation(x,y,(int)(ts));}#region显示当前坐标publicvoidShowLocation(doublex,doubley,intunit){stringstrUnit=null;switch(unit){case0:strUnit="未知单位";break;case1:strUnit="英尺";break;case2:strUnit="像素";break;case3:strUnit="步";break;case4:strUnit="码";break;case5:strUnit="英里";break;case6:strUnit="海里";break;case7:strUnit="毫米";break;case8:strUnit="厘米";break;case9:strUnit="米";break;case10:

strUnit="千米";break;case11:strUnit="度";break;case12:strUnit="分米";break;case13:strUnit="esriUnitLast";break;default:strUnit="";break;}//="X:"+ng().Substring(0,ng().LastIndexOf(".")+5)+""+strUnit+",Y:"+ng().Substring(0,ng().LastIndexOf(".")+5)+""+strUnit;[1].Text="X:"+ng("#########.####")+strUnit+",Y:"+ng("#########.####")+strUnit;}#endregionprivatevoiduiButton1_Click(objectsender,EventArgse){if(ryType==ometryPoint){IGeometrybufferGeo;ITopologicalOperatorbuffer=opyasITopologicalOperator;bufferGeo=(1000);=pe;}else{=;}h();hape(opy,2,10,null);}privatevoiddataGridView1_SizeChanged_1(objectsender,EventArgse){s[1].Width=s[0].Width;}

privatevoidfrmIdentify_FormClosed_2(objectsender,FormClosedEventArgse){ointer=interArrow;}privatevoidcomboBox1_SelectedIndexChanged_1(objectsender,EventArgse){();[1].Text="坐标:";[0].Text="查询……";h();selectedIndex=edIndex;}#region查询IArraypIDArray;//通过点Envelope进行查询privatevoidExcuteIdentifyByEnvelope(IEnvelopeidentifyenvelope){IIdentifypIdentify;IFeatureIdentifyObjpFeatureIdentifyObj;IIdentifyObjpIdentifyObj;pIdentify=_Layer(selectedIndex)asIIdentify;pIDArray=fy(identifyenvelope);//("OnMouseDownMethod");if(pIDArray!=null){pFeatureIdentifyObj=_Element(0)asIFeatureIdentifyObj;pIdentifyObj=pFeatureIdentifyObjasIIdentifyObj;(Display);pFeature=(_Element(0)asIRowIdentifyObject).RowasIFeature;ShowAttribute(pFeature);}else{();[0].Text="提示:没有查询到任何要素!";}}//通过点进行查询privatevoidExcuteIdentifyByPoint(IPointpoint){

IIdentifypIdentify;IArraypIDArray;IRasterLayerpRasterLayer;IRasterpRaster;pRasterLayer=_Layer(selectedIndex)asIRasterLayer;pRaster=;pIdentify=pRasterLayerasIIdentify;pIDArray=fy(point);IRasterIdentifyObjpRasterIObj;pRasterIObj=_Element(0)asIRasterIdentifyObj;Count=2;for(inti=0;i<;i++){if(_Layer(selectedIndex).Name=="自治区遥感底图"){dataGridView1[0,i].Value="影像象元值";}else{dataGridView1[0,i].Value=ng();}dataGridView1[1,i].Value=ng();}}#endregion#regionShowAttribute方法显示属性表publicvoidShowAttribute(IFeaturefeature){intnum=ount;nt=num;for(inti=0;i

case"esriGeometryPolyline":dataGridView1[1,i].Value="线";break;case"esriGeometryPolygon":dataGridView1[1,i].Value="面";break;}}else{dataGridView1[1,i].Value=_Value(i).ToString();}}[0].Text="查询的要素共有"+ng()+"个字段";}#endregionprivatevoidfrmIdentify_FormClosed(objectsender,FormClosedEventArgse){ointer=interArrow;}//当dataGridView1宽度改变时,第二列宽度随之改变privatevoiddataGridView1_SizeChanged(objectsender,EventArgse){s[1].Width=s[0].Width-63;}//当窗体关闭时鼠标样式变回箭头privatevoidfrmIdentify_FormClosed_1(objectsender,FormClosedEventArgse){ointer=interArrow;}}}


本文标签: 鼠标 查询 显示