다음을 통해 공유


방법: 명령 모양 변경

명령의 모양을 변경 하면 해당 사용자에 게 피드백을 제공할 수 있습니다. 예를 들어, 명령을 사용할 수 없는 경우 다른 모양으로 수행할 수 있습니다. 명령 사용 또는 사용 안 함, 또는 숨겨진 기능을 표시 하거나 확인 하거나 숨기려면 하기 메뉴에서 확인란 선택을 취소 합니다.

명령의 모양을 변경 하려면 다음이 작업 중 하나를 수행 하십시오.

  • 명령 정의 명령 테이블 파일에서에 적절 한 플래그를 지정 합니다.

  • 사용은 OleMenuCommandService 서비스 합니다.

  • 구현에서 IOleCommandTarget 인터페이스와 raw 명령 개체를 수정 합니다.

다음 단계 찾고 관리 패키지 프레임 워크 (MPF)를 사용 하 여 명령의 모양을 업데이트 하는 방법을 보여 줍니다.

메뉴 명령 모양 변경 하기

  1. 지시에 따라 방법: 메뉴 명령 텍스트 변경 라는 메뉴 항목을 만들려면 새 텍스트.

  2. VSPackage 소스 파일에 예를 들어, Menutextpackage.cs의 끝에 다음 줄을 추가 MenuItemCallback 메서드가 있습니다.

    var command = sender as OleMenuCommand;
    if (command.Text == "New Text") EnableMyCommand(command.CommandID.ID, false);
    
  3. 업데이트 하려는 명령의 얻을 OleMenuCommandService 개체 및 다음 명령 개체에서 적절 한 속성을 설정 합니다. 예를 들어, 다음 메서드는 VSPackage 명령에서 지정 된 명령을 사용할 수 있거나 사용할 수 없게 설정 있습니다.

    <PrincipalPermission(SecurityAction.Demand)> _
    Public Function EnableMyCommand(ByVal cmdID As Integer, ByVal fEnableCmd As Boolean) As Boolean 
        Dim fCmdUpdated As Boolean = False 
        Dim mcs As OleMenuCommandService = TryCast(Me.GetService(GetType(IMenuCommandService)), OleMenuCommandService)
        Dim newCmdID As CommandID = New CommandID(GuidList.guidMenuTextCmdSet, cmdID)
        Dim mc As MenuCommand = mcs.FindCommand(newCmdID)
        If mc IsNot Nothing Then
            mc.Enabled = fEnableCmd
            fCmdUpdated = True 
        End If 
        Return fCmdUpdated
    End Function
    
    [PrincipalPermission(SecurityAction.Demand)]
    public bool EnableMyCommand(int cmdID, bool fEnableCmd)
    {
        bool fCmdUpdated = false;
        var mcs = this.GetService(typeof(IMenuCommandService))
                as OleMenuCommandService;
        var newCmdID = new CommandID(GuidList.guidMenuTextCmdSet, cmdID);
        MenuCommand mc = mcs.FindCommand(newCmdID);
        if (mc != null)
        {
            mc.Enabled = fEnableCmd;
            fCmdUpdated = true;
        }
        return fCmdUpdated;
    }
    

    이 명명 된 항목 메뉴 있습니다 새 텍스트 클릭 한 후 사용할 수 없습니다.

참고 항목

개념

Vspackages에 IDE 사용자 인터페이스 요소를 추가 하는 방법

기타 리소스

명령, 메뉴 및 도구 모음

일반적인 작업 명령, 메뉴 및 도구 모음 사용

Visual Studio 명령은 테이블 (.Vsct) 파일