Esempio n. 1
0
 void UITool_Click(object sender, EventArgs e)
 {
     try
     {
         ButtonItem           pTemp  = sender as ButtonItem;
         string               strKey = pTemp.AccessibleName;
         MyPluginEngine.ITool tool   = this._ToolCol[strKey];
         //第一次按下
         if (_App.CurrentTool == null && _mapControl.CurrentTool == null && _pageLayoutControl.CurrentTool == null)
         {
             statusButton1.Text = "当前操作:" + tool.Message;
             if (null != pTemp)
             {
                 pTemp.Checked = true;
             }
             axMapControl1.MousePointer        = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
             axPageLayoutControl1.MousePointer = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
             tool.OnClick();
             _App.CurrentTool = tool.ToString();
             //if (null != pTemp)
             //{
             //    pTemp.Checked = false;
             //}
         }
         else
         {
             if (_App.CurrentTool == strKey)
             {
                 //如果是连续二次按下,则使这个Tool完成操作后处于关闭状态
                 if (null != pTemp)
                 {
                     pTemp.Checked = false;
                 }
                 axMapControl1.MousePointer        = esriControlsMousePointer.esriPointerDefault;
                 axPageLayoutControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;
                 _App.CurrentTool                   = null;
                 _App.MapControl.CurrentTool        = null;
                 _App.PageLayoutControl.CurrentTool = null;
             }
             else
             {
                 ////按下一个Tool后没有关闭接着去按另一个Tool,则关闭前一个Tool
                 ////获得前一个Tool
                 if (pTemp != null)
                 {
                     MyPluginEngine.ITool lastTool = _ToolCol[_App.CurrentTool];
                     //先判断上一个Tool是不是工具栏中的
                     ButtonItem lastItem = GetButtonItemFromTools(lastTool.Caption);
                     if (lastItem != null)
                     {
                         lastItem.Checked = false;
                     }
                     else//若不是工具栏中的,则判断是不是菜单栏中得到Tool
                     {
                         lastItem = GetButtonItemFromMenus(lastTool.Caption);
                         if (lastItem != null)
                         {
                             lastItem.Checked = false;
                         }
                     }
                     _App.PageLayoutControl.CurrentTool = null;
                     _App.MapControl.CurrentTool        = null;
                 }
                 //设置后一个Tool的状态
                 statusButton1.Text = "当前操作:" + tool.Message;
                 if (null != pTemp)
                 {
                     pTemp.Checked = true;
                 }
                 axMapControl1.MousePointer        = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                 axPageLayoutControl1.MousePointer = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                 tool.OnClick();
                 _App.CurrentTool = tool.ToString();
             }
         }
     }
     catch (System.Exception ex)
     {
         MessageBox.Show("发生异常,原因:" + ex.Message);
         return;
     }
 }
Esempio n. 2
0
        void UITool_Click(object sender, EventArgs e)
        {
            //获得当前点击的ITool对象
            //ToolStripButton pTempBtn = sender as ToolStripButton;
            //ToolStripMenuItem pTempMenuItem = sender as ToolStripMenuItem;
            //ToolStripItem pItem = pTempBtn;

            ButtonItem pTemp = sender as ButtonItem;
            //if (null == pTempBtn)
            //{
            //    pItem = pTempMenuItem;
            //}
            //if (null == pItem)
            //{
            //    return;
            //}
            string strKey = pTemp.AccessibleName;

            MyPluginEngine.ITool tool = this._ToolCol[strKey];
            //第一次按下
            if (_App.CurrentTool == null && _mapControl.CurrentTool == null && _pageLayoutControl.CurrentTool == null)
            {
                statusButton1.Text = "当前操作:" + tool.Message;
                if (null != pTemp)
                {
                    pTemp.Checked = true;
                }
                axMapControl1.MousePointer        = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                axPageLayoutControl1.MousePointer = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                tool.OnClick();
                _App.CurrentTool = tool.ToString();
                if (null != pTemp)
                {
                    pTemp.Checked = false;
                }
            }
            else
            {
                if (_App.CurrentTool == strKey)
                {
                    //如果是连续二次按下,则使这个Tool完成操作后处于关闭状态
                    if (null != pTemp)
                    {
                        pTemp.Checked = false;
                    }
                    axMapControl1.MousePointer        = esriControlsMousePointer.esriPointerDefault;
                    axPageLayoutControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;
                    _App.CurrentTool                   = null;
                    _App.MapControl.CurrentTool        = null;
                    _App.PageLayoutControl.CurrentTool = null;
                }
                else
                {
                    ////按下一个Tool后没有关闭接着去按另一个Tool,则关闭前一个Tool
                    ////获得前一个Tool
                    if (null != pTemp)
                    {
                        //ToolStripItem pItem1 = GetCurBtn(pItem.GetCurrentParent(), _App.CurrentTool);
                        //if (null == pItem1)
                        //    return;
                        //ToolStripButton lastTool = pItem1 as ToolStripButton;
                        //if (lastTool != null)
                        //{
                        //    lastTool.Checked = false;
                        //}
                        _App.PageLayoutControl.CurrentTool = null;
                        _App.MapControl.CurrentTool        = null;
                    }
                    //设置后一个Tool的状态
                    statusButton1.Text = "当前操作:" + tool.Message;
                    if (null != pTemp)
                    {
                        pTemp.Checked = false;
                    }
                    axMapControl1.MousePointer        = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                    axPageLayoutControl1.MousePointer = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                    tool.OnClick();
                    _App.CurrentTool = tool.ToString();
                }
            }
        }