http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> ArcObjects开发 >> 正文

《ArcGIS Engine+C#实例开发教程》第七讲 图层符号选择器的实现

作者:3SDN.Net    文章来源:3SDN原创    点击数:    更新时间:2009-5-12
摘要:我们要实现的是图层符号选择器,与ArcMap中的Symbol Selector的类似。本讲较前几讲而言,些许有些复杂,不过只要仔细琢磨,认真操作,你就很容易实现如下所示的符号选择器。

2.5     调用自定义符号选择器

通过以上操作,本符号选择器雏形已经完成,我们可以3sdnMap主窗体中调用并进行测试。如果您已经完成“直接调用ArcMap中的符号选择器”这一节,请注释axTOCControl1_OnDoubleClick事件响应函数里的代码,并添加如下代码。如果您是直接学习自定义符号选择器这一节的,请先添加axTOCControl1控件的OnDoubleClick事件,再添加如下事件响应函数代码:

   /// <summary>

/// 双击TOCControl控件时触发的事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void axTOCControl1_OnDoubleClick(object sender, ITOCControlEvents_OnDoubleClickEvent e)

{

    esriTOCControlItem itemType = esriTOCControlItem.esriTOCControlItemNone;

    IBasicMap basicMap = null;

    ILayer layer = null;

    object unk = null;

    object data = null;

    axTOCControl1.HitTest(e.x, e.y, ref itemType, ref basicMap, ref layer, ref unk, ref data);

    if (e.button == 1)

    {

        if(itemType==esriTOCControlItem.esriTOCControlItemLegendClass)

        {            

                //取得图例

                ILegendClass pLegendClass = ((ILegendGroup)unk).get_Class((int)data);

                //创建符号选择器SymbolSelector实例

                SymbolSelectorFrm SymbolSelectorFrm = new SymbolSelectorFrm(pLegendClass, layer);

                if (SymbolSelectorFrm.ShowDialog() == DialogResult.OK)

                {

                    //局部更新主Map控件

                    m_mapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);

                    //设置新的符号

                    pLegendClass.Symbol = SymbolSelectorFrm.pSymbol;

                    //更新主Map控件和图层控件

                    this.axMapControl1.ActiveView.Refresh();

                    this.axTOCControl1.Refresh();

                }

        }

}

 

       F5编译运行,相信你已经看到自己新手打造的符号选择器已经出现在眼前了。当然,它还比较简陋,下面我们将一起把它做得更完美些。

上一页  [1] [2] [3] [4] 

Tags:ArcGIS Engine  
责任编辑:gissky
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图