当前位置:编程文档 >> C# >> 在VS2005项目上添加右键菜单
首页

在VS2005项目上添加右键菜单

所属类别:C#
推荐指数:★★☆
文档人气:19
本周人气:7
发布日期:2008-8-2
在OnConnection中添加创建右键菜单的代码:

CommandBarEvents menuItemHandler;
    string  addinName = \"垃圾清除\";
_applicationObject = (DTE2)application;
   _addInInstance = (AddIn)addInInst;
//获得项目的命令行菜单
CommandBars cmdBars = (CommandBars)(_applicationObject.DTE.CommandBars);
CommandBar vsBarProject = cmdBars[\"Project\"];
 CommandBarControl menuItem = vsBarProject.Controls.Add(MsoControlType.msoControlButton, 1, \"\", 2, true);
 menuItem.Tag = addinName;
 menuItem.Caption = addinName;
 menuItem.TooltipText = addinNam
    menuItemHandler = (CommandBarEvents)_applicationObject.DTE.Events.get_CommandBarEvents(menuItem);
 menuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(MenuItem_Click);   
上面一段代码,作用是在项目的右键菜单上增加一个名称为垃圾清除的菜单,CommandBars和CommandBar是用于管理命令栏的接口,通过
 menuItemHandler = (CommandBarEvents)_applicationObject.DTE.Events.get_CommandBarEvents(menuItem);
 menuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(MenuItem_Click);  
来添加子菜单的点击事件。

   private void MenuItem_Click(object commandBarControl, ref bool handled, ref  bool cancelDefault)
        {
            try
            {
                Project prj = (Project)((Array)_applicationObject.ActiveSolutionProjects).GetValue(0);
                SpilthCleaner.Executor e = new SpilthCleaner.Executor();
                string res = e.Clear(System.IO.Path.GetDirectoryName(prj.FullName), prj.FullName);
                OutputWindowTest(_applicationObject, res);
            }
            catch (Exception ex)
             {
                OutputWindowTest(_applicationObject, ex.Message);
            }
        }
Click事件中是完成了对项目垃圾文件的清除和清除结果的输出,要想在输出窗口中输出自定义的内容,可以使用下面的方法[Page]

   public void OutputWindowTest(DTE2 dte,string outputStr)
        {
            //获得输出窗口
            OutputWindow ow = dte.ToolWindows.OutputWindow;
            //创建属于自己的输出类型
            OutputWindowPane owP;         
            owP = ow.OutputWindowPanes.Add(\"垃圾清理\");
            //输出文字内容
            owP.OutputString(outputStr);
        }
 这篇文章参考了dudu老大的 VS 2005 Add-in开发随笔  ,非常老大为我指明了方向。

vs2005是一个扩展性比较强大的平台,虽然没有eclipse支持插件那样猛,可通过我们的挖掘,还是能在vs2005上安装不少装饰的,我这篇主要写了如何添加右键菜单和输出自定义内容,这个菜单主要完成的工作是清除项目文件夹中没有被项目引用的垃圾数据,下面是源码,大家使用的时候,将相应的.dll和.addins拷贝到C:\\Documents and Settings\\Administrator\\My Documents\\Visual Studio 2005\\Addins就可以了


源码文件:http://forums.zxbc.cn/thread-41373-1-1.html

效果图:
1.在项目的右键菜单增加 垃圾清理 子菜单

2.点击垃圾清除后的自定义输出
 
不明白的TX,可以下载源程序下去看看

文档说明:

     

相关文档


读取评论列表……