基于C#的ArcEngine二次开发56:双击属性表跳转目标要素并闪烁

简介: 基于C#的ArcEngine二次开发56:双击属性表跳转目标要素并闪烁

      结合IHookActions的DoAction方法并搭上esriHookActionsFlash动作,这样做效果很接近arcmap中的效果,速度也比较快。Action方面有6个constant,可以根据需要选择

image.png

代码思路:

  • 获取要素的objectID,根据ID选出要素
  • 通过IHookActions闪烁要素

源代码:

private void LocatePoint(DataGridViewCellEventArgs e)
{
            int rowNO = e.RowIndex;
            if (rowNO >= 0)
            {
                int TowerObjectID = int.Parse(this.dataGridView.Rows[rowNO].Cells[0].Value.ToString());
                IQueryFilter pQueryFilter = new QueryFilterClass();
                pQueryFilter.WhereClause = "TowerObjectID=" + TowerObjectID;
                IFeatureCursor pFeatureCursor = _pFeatureLayerTower.Search(pQueryFilter, false);
                IFeature pFeature = pFeatureCursor.NextFeature();
                if (pFeature != null)
                {
                    IArray geoArray = new ArrayClass();
                    geoArray.Add(pFeature.ShapeCopy);
                    //通过IHookActions闪烁要素集合 
                    HookHelperClass m_pHookHelper = new HookHelperClass();
                    m_pHookHelper.Hook = this.mapContainer.MapControl.Object;
                    IHookActions hookActions = (IHookActions)m_pHookHelper;
                    hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsPan);
                    //hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsGraphic);
                    //hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsZoom);
                    //hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsCallout); 
                    Application.DoEvents();
                    m_pHookHelper.ActiveView.ScreenDisplay.UpdateWindow();
                    hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsFlash);
                }
            }       
}
相关文章
C#拾遗补漏之goto跳转语句
在我们日常工作中常用的C#跳转语句有break、continue、return,但是还有一个C#跳转语句很多同学可能都比较的陌生就是goto,今天大姚带大家一起来认识一下goto语句及其它的优缺点。
181 1
|
开发框架 .NET 编译器
C# 9.0中的目标类型新表达式:类型推断的又一进步
【1月更文挑战第16天】C# 9.0引入了目标类型新表达式,这是类型推断功能的一个重要扩展。通过目标类型新表达式,开发者在创建对象时可以省略类型名称,编译器会根据上下文自动推断所需类型。这一特性不仅简化了代码编写,还提高了代码的可读性和维护性。本文将详细介绍目标类型新表达式的语法、使用场景及其对C#编程的影响。
|
C#
25.C#跳转语句的学习
25.C#跳转语句的学习
182 0
|
缓存 C# UED
【机房合作】在C#中 解决窗体加载时闪烁问题
【机房合作】在C#中 解决窗体加载时闪烁问题
333 0
基于C#的ArcEngine二次开发54:IStatusBar状态栏接口的使用
基于C#的ArcEngine二次开发54:IStatusBar状态栏接口的使用
基于C#的ArcEngine二次开发54:IStatusBar状态栏接口的使用
|
NoSQL C#
基于C#的ArcEngine二次开发57:每用户订阅上的所有人SID 不存在
基于C#的ArcEngine二次开发57:每用户订阅上的所有人SID 不存在
|
3月前
|
XML 前端开发 C#
C#编程实践:解析HTML文档并执行元素匹配
通过上述步骤,可以在C#中有效地解析HTML文档并执行元素匹配。HtmlAgilityPack提供了一个强大而灵活的工具集,可以处理各种HTML解析任务。
192 19
|
4月前
|
监控 算法 C#
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
569 0
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
258 3

热门文章

最新文章