当前位置: 首页>>代码示例>>C#>>正文


C# OleMenuCommandService.FindCommand方法代码示例

本文整理汇总了C#中Microsoft.VisualStudio.Shell.OleMenuCommandService.FindCommand方法的典型用法代码示例。如果您正苦于以下问题:C# OleMenuCommandService.FindCommand方法的具体用法?C# OleMenuCommandService.FindCommand怎么用?C# OleMenuCommandService.FindCommand使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Microsoft.VisualStudio.Shell.OleMenuCommandService的用法示例。


在下文中一共展示了OleMenuCommandService.FindCommand方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AddAttachCommand

        /// <summary>
        /// Adds the attach command.
        /// </summary>
        /// <param name="mcs">The Menu Command Service.</param>
        /// <param name="getDescriptor">The get descriptor.</param>
        private void AddAttachCommand( OleMenuCommandService mcs, int commandId, Func<GeneralOptionsPage, AttachDescriptor> getDescriptor )
        {
            if ( mcs != null ) {
                var commandIdentifier = new CommandID ( ATAGuids.guidAttachToAnyCmdGroup, commandId );
                var existing = mcs.FindCommand(commandIdentifier);
                var descriptor = getDescriptor ( OptionsPage );
                if ( existing != null ) {
                    ( (DescriptorMenuCommand)existing ).Descriptor = descriptor;
                    return;
                }
                var menuItem = new DescriptorMenuCommand (
                    ( s, e ) => {
                        var menu = (DescriptorMenuCommand)s;
                        if ( OptionsPage.DTE != null ) {
                            var procList = new List<EnvDTE.Process> ( );

                            foreach ( EnvDTE.Process process in OptionsPage.DTE.Debugger.LocalProcesses ) {
                                if ( menu.Descriptor.ProcessNames.Any ( p => process.Name.EndsWith ( p ) ) ) {
                                    procList.Add ( process );
                                }
                            }

                            if ( procList.Count == 0 ) {
                                return;
                            }

                            // Where there is only 1, or "best choice"
                            if ( procList.Count == 1 || !menu.Descriptor.ChooseProcess ) {
                                procList.First ( ).Attach ( );
                                return;
                            }

                            AttachToAnyPackage.ShowProcessManagerDialog ( procList );
                        }
                    }, commandId, descriptor );
                mcs.AddCommand ( menuItem );
            }
        }
开发者ID:modulexcite,项目名称:AttachToAny,代码行数:43,代码来源:MenuBuilder.cs

示例2: RefreshAppPoolMenu

 private void RefreshAppPoolMenu(OleMenuCommandService mcs)
 {
     var appPools = LookupAppPools.GetAppPoolProcesses();
     int j = 0;
     foreach (var appPool in appPoolList)
     {
         var cmdID = new CommandID(GuidList.guidNielsV_AttachToAppPoolCmdSet, this.baseMRUID + j);
         var menuCommand = mcs.FindCommand(cmdID) as OleMenuCommand;
         if (j >= 0 && j < this.appPoolList.Count && j < appPools.Count)
         {
             menuCommand.Text = appPools.Values.ElementAt(j);
             menuCommand.Visible = true;
         }
         else
         {
             menuCommand.Visible = false;
         }
         j++;
     }
 }
开发者ID:Niels-V,项目名称:AttachToAppPool,代码行数:20,代码来源:NielsV.AttachToAppPoolPackage.cs


注:本文中的Microsoft.VisualStudio.Shell.OleMenuCommandService.FindCommand方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。