歪兔工具条(YToolsforArcMap)简介之ArcGIS插件中通过菜单调用打开Toolbox工具

俗话说的好:“an image is better than tons of words.” 先上个图。

1.套路

很明显,这是一个插件,这个插件是通过“Extending ArcObjec”的方式开发的,相关信息可以扒本博。

通过menu按钮呼出了toolbox的工具窗口。

细看一下,它是由两级菜单实现的,第一级是工具类名,第二级是具体的工具按钮。

具体的呢:

①点击一级菜单ToolMenu展开二级菜单RasterToolMenu的按钮;

②二级菜单点击下去是执行了对应的Command。

2.Command里的实现

①从模板创建一个Command,把一同生成的bmp图标删掉,相关加载代码也在该类中删掉,因为这个图没啥用。

 

②使该类实现IToolCommand接口,以调用扩展方法。

③对相关属性进行赋值。

④在OnClick方法中调用扩展方法,传入tool工具的名字进行调用。

需要注意的是tool工具名指的是如图的Name。

⑤IToolCommand接口及扩展方法代码如下

namespace YToolsForArcMap.Command.Tool
{
    internal interface IToolCommand
    {
    }
    internal static class Extend
    {
        public static void ShowToolCommandWindow<T>(this T t, string toolName) where T:IToolCommand
        {
            string dllFolderPath =Utils.Path.GetPath.GetThisDllFolderPath();

//打开tool窗口主要代码就是下面3行。
            IGPToolCommandHelper gPToolCommandHelper = new GPToolCommandHelperClass();
            gPToolCommandHelper.SetToolByName($"{dllFolderPath}/Tools/YToolsforArcMap.tbx",toolName);
            gPToolCommandHelper.Invoke(null);
        }
    }
}

原文地址:https://www.cnblogs.com/yzhyingcool/p/12320604.html