방법: 명령 모양 변경
명령의 모양을 변경 하면 해당 사용자에 게 피드백을 제공할 수 있습니다. 예를 들어, 명령을 사용할 수 없는 경우 다른 모양으로 수행할 수 있습니다. 명령 사용 또는 사용 안 함, 또는 숨겨진 기능을 표시 하거나 확인 하거나 숨기려면 하기 메뉴에서 확인란 선택을 취소 합니다.
명령의 모양을 변경 하려면 다음이 작업 중 하나를 수행 하십시오.
명령 정의 명령 테이블 파일에서에 적절 한 플래그를 지정 합니다.
사용은 OleMenuCommandService 서비스 합니다.
구현에서 IOleCommandTarget 인터페이스와 raw 명령 개체를 수정 합니다.
다음 단계 찾고 관리 패키지 프레임 워크 (MPF)를 사용 하 여 명령의 모양을 업데이트 하는 방법을 보여 줍니다.
메뉴 명령 모양 변경 하기
지시에 따라 방법: 메뉴 명령 텍스트 변경 라는 메뉴 항목을 만들려면 새 텍스트.
VSPackage 소스 파일에 예를 들어, Menutextpackage.cs의 끝에 다음 줄을 추가 MenuItemCallback 메서드가 있습니다.
var command = sender as OleMenuCommand; if (command.Text == "New Text") EnableMyCommand(command.CommandID.ID, false);
업데이트 하려는 명령의 얻을 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 사용자 인터페이스 요소를 추가 하는 방법