2011-06-25 84 views
1

如何動態刪除ToolStripMenu項目。我有兩個事件觸發一個添加名稱和一個刪除名稱。添加名字的作品。刪除不。當我調試我的刪除我可以在DropDownItems中看到{Poco}。然而,當我打電話刪除它不會刪除動態地從ToopStripMenuItem中刪除項目

// Adding items works as expected 
ToolStripMenuItem mi = new ToolStripMenuItem("Poco"); 
mi.CheckOnClick = true; 
myToolStripMenuItem.DropDownItems.Add(mi); 

我已經嘗試了很多東西..我想會的工作是這樣的

// This does not work .. how do i fix this? 
myToolStripMenuItem.DropDownItems.RemoveByKey("Poco"); 

什麼是去除名稱的正確方法是什麼?

回答

5

ToolStripItemCollection.Item屬性允許您通過項目名稱尋找 - 只要它爲對象本身設置 - 所以如果我假設無法添加重複的字符串作爲菜單項,請使用要顯示的文本初始化對象它的名字應該使您以後將其刪除:

ToolStripMenuItem mi = new ToolStripMenuItem("Poco"){ Name = "Poco" }; 

,再往上的處理與你有相同的代碼刪除(我假設它應該工作):

//Should now work based on MS's comment for the Name property: 
//The Name property can be used as a key into the ToolStripItemCollection. 
myToolStripMenuItem.DropDownItems.RemoveByKey("Poco"); 

我不幸現在不能測試它,在這臺Mac上沒有.NET。 :-)不過,我敢肯定,你可以刪除()它通過直接引用的對象集合中:

myToolStripMenuItem.DropDownItems.Remove(myToolStripMenuItem.DropDownItems["Poco"]); 

再次,太糟糕了,我不能馬上測試了一個肯定的答案。

+0

設置名稱屬性做了詭計,謝謝你先生 – poco

+0

正是我在找什麼。 +1 – Almo