• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
bobird的学习笔记
博客园    首页    新随笔    联系   管理    订阅  订阅
如何将数据拖放到MapControl上
private void axMapControl1_OnOleDrop(object sender,
    ESRI.ArcGIS.Controls.IMapControlEvents2_OnOleDropEvent e)
{
       IDataObjectHelper dataObject = (IDataObjectHelper)e.dataObjectHelper;
    esriControlsDropAction action = e.dropAction;
    e.effect = (int)esriControlsDragDropEffect.esriDragDropNone;
      if (action == esriControlsDropAction.esriDropEnter)
    {
               if (dataObject.CanGetFiles() | dataObject.CanGetNames())
        {
                        m_Effect = esriControlsDragDropEffect.esriDragDropCopy;
        }
    }
    if (action == esriControlsDropAction.esriDropOver)
    {
               e.effect = (int)m_Effect;
    }
       if (action == esriControlsDropAction.esriDropped)
    {
               if (dataObject.CanGetFiles() == true)
        {
                      System.Array filePaths = System.Array.CreateInstance(typeof(string), 0,
                0);
            filePaths = (System.Array)dataObject.GetFiles();
                      for (int i = 0; i <= filePaths.Length - 1; i++)
            {
                        if (axMapControl1.CheckMxFile(filePaths.GetValue(i).ToString()) ==
                    true)
                {
                    try
                    {
                        axMapControl1.LoadMxFile(filePaths.GetValue(i).ToString(),
                            Type.Missing, "");
                    }
                    catch (System.Exception ex)
                    {
                        MessageBox.Show("Error:" + ex.Message);
                        return ;
                    }
                }
                else
                {
                                        IFileName fileName = new FileNameClass();
                    fileName.Path = filePaths.GetValue(i).ToString();
                                        CreateLayer((IName)fileName);
                }
            }
        }
               else if (dataObject.CanGetNames() == true)
        {
                        IEnumName enumName = dataObject.GetNames();
            enumName.Reset();
                        IName name = enumName.Next();
                        while (name != null)
            {
                              CreateLayer(name);
                name = enumName.Next();
            }
        }
    }
}

private void CreateLayer(IName name)
{
        axMapControl1.MousePointer = esriControlsMousePointer.esriPointerHourglass;
        ILayerFactoryHelper layerFactoryHelper = new LayerFactoryHelperClass();
 ILayerFatcoryHelper interface.
    try
    {
        IEnumLayer enumLayer = layerFactoryHelper.CreateLayersFromName(name);
        enumLayer.Reset();
                ILayer layer = enumLayer.Next();
                while (layer != null)
        {
                        axMapControl1.AddLayer(layer, 0);
            layer = enumLayer.Next();
        }
    }
    catch (System.Exception ex)
    {
        MessageBox.Show("Error:" + ex.Message);
    }
       axMapControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;
}

 

posted on 2013-06-27 09:36  bobird  阅读(302)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3