2012-05-25 2 views
1

ToolStripMenuItem의 인스턴스를 만들고 폼의 두 개의 다른 메뉴 (컨텍스트 메뉴 및 메뉴 조각)에 하위 메뉴로 추가하려고합니다. 나는 그것을 작동시키는 방법을 안다. 그러나 이것이 왜 효과가 없는지 궁금하다. C# WinForms ToolStripMenuItem을 동적으로 추가합니다. 왜 이것이 작동하지 않습니까?

private static string[] parameters = { "itemOne", "itemTwo", "itemThree"}; 

    private void MainForm_Load(object sender, EventArgs e) 
    { 
     foreach (string s in parameters) 
     { 
      ToolStripMenuItem addThis = new ToolStripMenuItem(s); 
      existingToolStripMenuItem.DropDownItems.Add(addThis); 
      existingMenuItem.DropDownItems.Add(addThis); 
     } 
    } 

나는 그것이 내가 DropDownItems.Add() 문 중 하나를 주석 경우 잘 작동 또는 나는 두 개의 별도의 인스턴스를 만들 경우났습니다. 왜 이렇게합니까?

답변

1

ToolStripItemCollection.Add의 구현에 대해 알아 본다면 두 번째 호출 existingMenuItem.DropDownItems.Add(addThis);existingToolStripMenuItem.DropDownItems에서 addThis을 제거합니다. 그래서 같은 ILSpy로 디 컴파일러를 사용하는 방법을 학습

http://wiki.sharpdevelop.net/ilspy.ashx

가능한 해결 방법은이 발견으로 두 개의 별도의 인스턴스를 생성하는 것입니다, .NET 개발자를위한 중요합니다. 당신이 함께 두 인스턴스를 연결하려는 경우, 당신은 ILSpy의 추천을 위해,

http://www.lextm.com/2012/04/packaging-crads-actionlist-for-net-via-nuget/

+0

감사를 ACTIONLIST를 사용할 수 있습니다. – br4d

관련 문제