當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。