欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-12 15:18:27
...

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

  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(鼠标点击图层点显示属性(两个及以上))

相关标签: 毕业设计