VS Addin插件基本开发入门

来自:清泛网http://www.tsingfun.com/html/2015/dev_0727/475.html


1、新建一个插件工程,如图:

接下来引导步骤默认点”下一步“:(第四步勾选生成菜单),如图:

查看工程右键->属性,如图:


工程默认生成了一个 Connect.cs 文件,它是插件的入口代码。其中 OnConnection 函数是插件启动、响应事件的处理函数。里面默认向Tool菜单下添加了子菜单,代码简单明了,不解释。

这时,我们直接Ctrl + F5运行插件,启动VS新实例后,点击”工具“菜单,出现插件菜单项,如图:



2、接来,我们来为插件添加事件,实现的需求:
默认让它弹出一个VS特有的对话框,对话框中有一文本框和一按钮,文本框中输入内容,点按钮后,将内容插入到VS代码编辑区当前光标处。

首先,为对话框建立一个用户控件,添加输入框和按钮,如图:


然后,修改修改用户控件代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using EnvDTE;
using EnvDTE80;

namespace AddinDemo
{
    public partial class MyUserControl : UserControl
    {
        private DTE2 _applicationObject;

        /// <summary>
        /// VS的DTE2对象
        /// 
        public DTE2 ApplicationObject { set { _applicationObject = value; } }

        public MyUserControl()
        {
            InitializeComponent();
        }
    }
}
再修改 Connect.cs 代码,如下:
添加一个全局变量:Window myToolWindow = null;
OnConnection函数:
else if (connectMode == ext_ConnectMode.ext_cm_AfterStartup)
            {
                const string TOOLWINDOW_GUID = "{6CCD0EE9-20DB-4636-9149-665A958D8A9A}";

                object myUserControlObject = null;
                EnvDTE80.Windows2 windows2 = (EnvDTE80.Windows2)_applicationObject.Windows;
                string assembly = System.Reflection.Assembly.GetExecutingAssembly().Location;

                myToolWindow = windows2.CreateToolWindow2(_addInInstance, assembly,
                   typeof(MyUserControl).FullName, "AddinDemo", TOOLWINDOW_GUID, ref myUserControlObject);

                // 设置DTE对象
                MyUserControl muc = myToolWindow.Object as MyUserControl;
                muc.ApplicationObject = _applicationObject;
            }
此时运行,点击菜单没有效果,因为目前只是创建了对话框,没有显示它。

Exec函数中添加一句代码:myToolWindow.Visible = true;
public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
		{
			handled = false;
			if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
			{
				if(commandName == "AddinDemo.Connect.AddinDemo")
				{
                    myToolWindow.Visible = true;

					handled = true;
					return;
				}
			}
		}
此时再运行,对话框正常显示,效果如下:


我们再来为”Insert code“按钮添加事件,完成我们的需求,添加代码如下:
/// <summary>
        /// 在VS代码区光标处插入代码
        /// 
        ///代码
        private void Insert2VSDoc(string text)
        {
            try
            {
                if (string.IsNullOrEmpty(text))
                    return;

                TextDocument textDocument = (TextDocument)null;

                if (_applicationObject.ActiveDocument != null)
                    textDocument = _applicationObject.ActiveDocument.Object("TextDocument") as TextDocument;

                if (textDocument == null || textDocument.Selection == null)
                {
                    MessageBox.Show("不能插入代码,当前没有活动的文档!", "AddinDemo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                else
                {
                    textDocument.Selection.Insert(text, 1);
                    textDocument.Selection.SmartFormat();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("不能插入代码,当前不是代码视图!", "AddinDemo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Insert2VSDoc(textBox1.Text);
        }
效果如下:


至此,插件基本开发ok,小伙伴们可以像WinForm开发一样,为插件添加各种各样的功能。

下一篇,我们将介绍下插件的部署,配置等,见《 VS插件配置、部署
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
使用 ArcMap 的 Add-in 插件,可以让你在 ArcMap 中自定义自己的工具和功能,提高工作效率。下面是 Add-in 插件的使用步骤: 1. 创建 Add-in 项目 在 Visual Studio 中,选择“File”-“New”-“Project”,然后在“Visual C#”或“Visual Basic”下选择“ArcGIS”-“Desktop Add-ins”-“ArcGIS Desktop Add-in”,填写项目名称和位置,点击“OK”创建项目。 2. 设计插件界面 在“Solution Explorer”中,右键点击“Add-in”项目,选择“Add”-“New Item”,在弹出的对话框中选择“ArcGIS Add-in Assembly”,填写名称和描述,然后点击“Add”创建插件程序集。 在插件项目中,可以添加工具栏、按钮、菜单等控件,也可以将自定义的控件添加到 ArcMap 的现有控件中。 3. 编写插件代码 在插件项目中,可以编写自定义的代码,实现插件的功能。例如,可以编写代码实现地图的缩放、平移、添加图层等操作。 4. 编译和部署插件 在完成插件的编写后,需要编译插件并将其部署到 ArcMap 中。在 Visual Studio 中,选择“Build”-“Build Solution”编译插件,然后将生成的插件文件部署到 ArcMap 的 Add-in 文件夹中。 5. 在 ArcMap 中使用插件 在启动 ArcMap 后,可以在“Customize”选项中找到自定义的工具栏、按钮或菜单,使用插件实现自己的功能。 以上就是使用 ArcMap 的 Add-in 插件基本步骤,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI2中文网

真诚赞赏,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值