런타임에 생성 할 수있는 동적 컨텍스트 메뉴를 만드는 솔루션을 찾고 있습니다. 나는 정상적인 명령 패턴과 비슷한 것을 구현하는 IGuiCommand
인터페이스를 구현했다.동적 컨텍스트 메뉴
interface IGuiCommand
{
Execute();
Undo();
bool CanUndo {get;set;}
Redo();
string CommandName {get;set;}
string CommandDescription {get;set;}
}
아이디어는 주어진 컨텍스트 메뉴에 표시 할 명령 목록을 제출하기 위해 마우스 오른쪽 단추를 클릭하는 것을 허용하는 것입니다.
각 컨트롤에 상황에 맞는 메뉴를 만들 수도 있지만 단일 상황에 맞는 메뉴를 사용하고 런타임에 관리하기 쉽도록 동적으로 메뉴를 생성하는 것이 좋습니다. 제어 상태 나 응용 프로그램 상태가 변경되면 컨텍스트 메뉴에 변경 내용이 반영되기를 바랍니다. 예를 들어, 체크 박스를 마우스 오른쪽 버튼으로 클릭하면, 체크 박스는 컨텍스트 메뉴에 체크 박스의 현재 체크 된 값에 따라 표시 할 활성화 또는 비활성화 명령을 제출합니다.
특정 컨트롤에 대한 컨텍스트 메뉴를 표시하기 위해 어떤 컨트롤이 "마우스 오른쪽 단추로 눌렀는지"알 수있는 방법이 있다면 쉽게 구현할 수 있다고 생각합니다.
그것은 (팝업으로 상황에 맞는 메뉴를 야기 또는 무엇이든 명령)을 우측 클릭 된 컨트롤을 나타냅니다 EventArg
당신은 단지 ContextMenuStrip_Opening 이벤트를 재정의해야
나는 단지 그 정보를 추가하지 않았다는 것을 깨달았습니다. 그것은 WinForms입니다 태그를 추가합니다 – galford13x
이것은 WinForms에 대한 어려운 질문이어야합니다. 그러나 누군가 WPF에 대해 어떻게 수행 될지에 대한 대답을 가지고 있다면 나는 모든 귀입니다. 지금은 작은 유틸리티로 GUI를 재실행하기 때문에 WPF에서 할 수 있습니다. – galford13x