ArcEngine二次开发_04(鼠标点击图层点显示属性(两个及以上))

首先,这个功能之前有琢磨了一段时间,分享给大家,谢谢各位朋友们

  private void mainMapControl_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
        {
            if (mainMapControl.LayerCount > 0)  //判断是否在axMapControl上加载图层
            {
                IFeatureLayer pFeatureLayer = mainMapControl.Map.get_Layer(0) as IFeatureLayer;
                IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
                string tipId = null;
                string tipSector = null;
                int num = pFeatureClass.Fields.FieldCount;
                for (int i = 0; i < num; i++)
                {
                    string filedName = pFeatureClass.Fields.get_Field(i).Name;  //用于遍历属性名
                    if (filedName == "BTS_ID")
                    {
                        pFeatureLayer.DisplayField = filedName;
                        tipId = pFeatureLayer.get_TipText(e.mapX, e.mapY, mainMapControl.ActiveView.FullExtent.Width / 10000);
                    }
                    if (filedName == "1X_Sector_")
                    {
                        pFeatureLayer.DisplayField = filedName;
                        tipSector = pFeatureLayer.get_TipText(e.mapX, e.mapY, mainMapControl.ActiveView.FullExtent.Width / 10000);
                    }
                }
                pFeatureLayer.ShowTips = true;
                string pTip;
                pTip = tipId + " _ " + tipSector;
                if (pTip != null)  // 判断pTip内容是否为空
                {
                    toolTip1.SetToolTip(mainMapControl, pTip);  //需先添加tooltip控件:当用户移动关联控件时显示信息
                }
                else
                {
                    toolTip1.SetToolTip(mainMapControl, "");
                }
            }
            else
                return;
        }

接下来看一下显示效果吧哈哈哈哈

ArcEngine二次开发_04(鼠标点击图层点显示属性(两个及以上))_第1张图片

你可能感兴趣的:(arcengine开发)