양식이 있습니다. 이 양식에는 사용자 정의가 있습니다. 이 사용자 정의 컨트롤에는 패널과 컨텍스트 메뉴가 있습니다. 상황에 맞는 메뉴는 패널에 연결되어 있지 않습니다. 동적으로 생성되어이 패널에 추가되는 다른 컨트롤이 있습니다. 이러한 컨트롤 중 하나는 버튼입니다. 이 버튼을 클릭하면 컨텍스트 메뉴에 contextmenustrip 속성을 설정합니다.컨트롤 컬렉션에서 컨텍스트 메뉴를 찾을 수 없습니다.
제 문제는 버튼에 상황에 맞는 메뉴를 첨부 할 수있는 기회가 있기 전에 해당 상황에 맞는 메뉴의 항목을 읽어야한다는 것입니다.
양식이로드 될 때마다 양식의 모든 하위 컨트롤을 반복합니다. 컨트롤에 자식이있는 경우 해당 내용을 반복합니다 ... 등등 ... 컨텍스트 메뉴에 표시되지 않아서 말할 수없는 것 같습니다. 컨트롤에 첨부되지 않았으므로 폼의 컨트롤에 대한 자식 컨트롤이 아닌 것으로 보입니다.
myConectMenu는 this.Controls.Add (myConectMenu)와 같이 사용자에게 추가되지 않습니다. 해당 상황에 맞는 메뉴가 양식 컨트롤 컬렉션에 중첩되지 않는 이유는 무엇입니까? 해당 컨텍스트 메뉴에서 어떻게 얻을 수 있습니까?
private System.Windows.Forms.ContextMenuStrip myContextMenu;
void InitializeComponent()
{
this.myContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
this.myContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.myToolStripMenuItem1,
this.myToolStripMenuItem2});
this.myContextMenu.Name = "myContextMenu";
this.myContextMenu.Size = new System.Drawing.Size(158, 92);
}
업데이트 제어 반복이 내 응용 프로그램의 모든 형태의 파생되는 기본 클래스에서 발생 : 여기
디자이너 코드입니다.myContextMenu가 추가되는 개인 구성 요소 개체가 있습니다. 이것이 컨트롤에 연결되어 있지 않을 때 디자인보기에서 컨텍스트 메뉴를 볼 수 있도록 상상해보십시오. 아마도 내가 이것을 활용할 수 있을까요?
private System.ComponentModel.IContainer components = null;
this.myContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
ContextMenuStrip으로 무엇을하고 싶은지 설명 할 수 있습니까? –
은 자식 컨트롤을 반복하고 사용자가 액세스 할 수없는 항목을 사용하지 않도록 설정합니다. –