특정 플래그가 설정되어 있지 않은 경우 contextmenustrip을 숨길 수있는 요구 사항이 있습니다. 컨텍스트 메뉴 스트립의 표시/숨기기를 명시 적으로 제어 할 수 있다고 생각하지 않기 때문에 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴 스트립과 연결된 컨트롤을 클릭하기로 결정했습니다. 그것은 UserControl, 그래서 그것을 처리 MouseClick 이벤트를 내가 플래그가 설정되어 있는지 확인하고 단추가 오른쪽 단추를 경우. 그러나 놀랍게도 마우스 오른쪽 클릭시 이벤트가 실행되지 않고 왼쪽 클릭 이벤트 만 발생합니다.ContextMenuStrip이 C#에서 로딩되지 않도록 명시 적으로 금지합니다.
나에게 문제가 있거나 해결 방법이 있습니까? 내가 컨트롤에 MOUSE_DOWN 이벤트를 취급 할 때
오른쪽 클릭이 감지 질문 제목과 설명이 좀 더 연구를 수행 한 후
을 변경지고, 난, 발사 할 수있는 오른쪽 클릭하면 있어요. 그러나 아직 우둔한데, 이 ContextMenuStrip을 명시 적으로 금지하는 방법은입니다. 또 다른 질문은 마우스 클릭이 오른쪽 버튼 클릭을 감지하지 못했기 때문입니다.
현재 해결 방법
이 내가하고있어 현재 해결되는 이벤트 핸들러
userControl1.Control1.MouseDown += new MouseEventHandler(Control1_MouseDown);
void Control1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right && flag == false)
{
userControl1.Control1.ContextMenuStrip = null;
}
else
{
userControl1.Control1.ContextMenuStrip = contextMenuStrip1;
}
}
등록. 하지만 ContextMenuStrip의 Opening 이벤트에서 어떻게 변경합니까?
코드를 게시 할 수 있습니까? – NinethSense
질문에 새로 삽입 된 "로드 중"이란 무엇을 의미합니까? 인스턴스를 만드는 것을 의미합니까? 아니면 이전에 보였던 것처럼 팝업을 의미합니까? – OregonGhost
클릭 이벤트에 대한 설명은이 페이지 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.click.aspx에서 확인할 수 있습니다. 클릭 이벤트 – ChrisF