private void axSceneControl1_OnMouseDown(object sender, ISceneControlEvents_OnMouseDownEvent e) { ICommand cmd = new ControlsSceneNavigateToolClass(); cmd.OnCreate(axSceneControl1.Object); cmd.OnClick(); axSceneControl1.CurrentTool = cmd as ITool; }
private void axSceneControl1_OnMouseDown(object sender, ISceneControlEvents_OnMouseDownEvent e) { if (e.button == 2) { System.Drawing.Point p = new System.Drawing.Point(); p.X = e.x; p.Y = e.y; contextMenuStrip1.Show(axSceneControl1, p); } }
private void mSceneControl_OnMouseDown(object sender, ISceneControlEvents_OnMouseDownEvent e) { if (mPointSearch.Checked)//check按钮处于打勾状态 { //查询 mSceneControl.SceneGraph.LocateMultiple(mSceneControl.SceneGraph.ActiveViewer, e.x, e.y, esriScenePickMode.esriScenePickAll, false, out mHit3DSet); mHit3DSet.OnePerLayer(); if (mHit3DSet == null)//没有选中对象 { MessageBox.Show("没有选中对象"); } else { //显示在ResultForm控件中。 mResultForm.Show(); mResultForm.refeshView(mHit3DSet); } mSceneControl.Refresh(); } }
private void axSceneControl1_OnMouseDown_1(object sender, ISceneControlEvents_OnMouseDownEvent e) { if (j == 2) { this.axSceneControl1.Scene.ClearSelection();//清除之前的选择集,去除高亮显示 IHit3DSet pHit3DSet = null; this.axSceneControl1.SceneGraph.LocateMultiple(this.axSceneControl1.SceneViewer, e.x, e.y, esriScenePickMode.esriScenePickAll, false, out pHit3DSet); pHit3DSet.OnePerLayer(); if (pHit3DSet.Hits.Count == 0) { MessageBox.Show("没有选中任何要素!"); return; } IHit3D pHit3D = pHit3DSet.Hits.get_Element(0) as IHit3D; IFeature pFeature = pHit3D.Object as IFeature;//pHit3D.Owner其实是一个ILayer类型,pHit3D.Object是一个IFeature类型 IFields pFields = pFeature.Fields; StringBuilder Info = new StringBuilder(); for (int i = 3; i < pFields.FieldCount; i++) { IField pField = pFields.get_Field(i); if (pField.Type != esriFieldType.esriFieldTypeGeometry) { Info.Append(pField.Name + ":" + pFeature.get_Value(pFields.FindField(pField.Name)) + "\n"); } } MessageBox.Show(Info.ToString()); IDisplay3D pDisplay3D = this.axSceneControl1.SceneGraph as IDisplay3D; // pDisplay3D.FlashGeometry(pHit3D.Owner, pHit3D.Object );//闪烁一次,pHit3D.Owner是一个ILayer类型,pHit3D.Object是一个IFeature类型 // pDisplay3D.AddFlashFeature(pFeature.Shape);//保持高亮 this.axSceneControl1.Scene.SelectFeature(pHit3D.Owner as ILayer, pFeature);//加入选择集,并自动高亮 axSceneControl1.SceneGraph.RefreshViewers(); } if (j == 4) { this.axSceneControl1.Scene.ClearSelection();//清除之前的选择集,去除高亮显示 IHit3DSet pHit3DSet = null; this.axSceneControl1.SceneGraph.LocateMultiple(this.axSceneControl1.SceneViewer, e.x, e.y, esriScenePickMode.esriScenePickAll, false, out pHit3DSet); pHit3DSet.OnePerLayer(); if (pHit3DSet.Hits.Count == 0) { MessageBox.Show("没有选中任何要素!"); return; } IHit3D pHit3D = pHit3DSet.Hits.get_Element(0) as IHit3D; IFeature pFeature = pHit3D.Object as IFeature;//pHit3D.Owner其实是一个ILayer类型,pHit3D.Object是一个IFeature类型 IFields pFields = pFeature.Fields; StringBuilder Info = new StringBuilder(); IDisplay3D pDisplay3D = this.axSceneControl1.SceneGraph as IDisplay3D; this.axSceneControl1.Scene.SelectFeature(pHit3D.Owner as ILayer, pFeature);//加入选择集,并自动高亮 IField pField = pFields.get_Field(2); if ("5555" == "" + pFeature.get_Value(pFields.FindField(pField.Name))) { pField = pFields.get_Field(4); str = "" + pFeature.get_Value(pFields.FindField(pField.Name)); Form2 a = new Form2(str); a.Text = "" + str; a.Show(); } axSceneControl1.SceneGraph.RefreshViewers(); } }