在Vs2005-项目上如何添加右键菜单?
2015-04-15 15:18:28 访问(1597) 赞(0) 踩(0)
我们看下如何在解决方案资源管理器中如何添加右键菜单和如何自定义输出。
仍然是在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事件中是完成了对项目垃圾文件的清除和清除结果的输出,要想在输出窗口中输出自定义的内容,可以使用下面的方法
public void OutputWindowTest(DTE2 dte,string outputStr)
{
//获得输出窗口
OutputWindow ow = dte.ToolWindows.OutputWindow;
//创建属于自己的输出类型
OutputWindowPane owP;
owP = ow.OutputWindowPanes.Add("垃圾清理");
//输出文字内容
owP.OutputString(outputStr);
}
上一条:
下一条:
版权声明:
如果本站的资源使用了您的作品,请联系我们,我们会及时的注明
本站所有的资源均为免费自由下载,目的是让大家学习和交流
由于收集过程中几经转载,所以很多作品的原作者不详
如果您不愿在本站展示,请联系我们,我们会及时删除
相关评论
发表评论