2012-04-25 29 views
1

簡單問題:取消的ToolStripItem上的ContextMenuStrip

我可以.Select一個ToolStripItem(比如,如果我想打開一個上下文菜單條時預選的選項),但我似乎無法找到一種方法來設置.Selected爲false或以某種方式取消選擇!

可能嗎?

回答

3

ToolStrip類中有私有方法ClearAllSelections,它從項目中刪除選擇。您可以通過反射調用它:

MethodInfo method = typeof(ToolStrip).GetMethod("ClearAllSelections", BindingFlags.NonPublic | BindingFlags.Instance); 
method.Invoke(yourContextMenuStrip, null); 

所有選擇都將被刪除。

+0

Omfg ....好吧,Micro $ oft在其最好的禮物:)當它不應該是私人的東西時。好吧,謝謝你的回答! – Istrebitel 2012-04-27 08:36:53

+0

@lazyberezovsky:很棒的信息...節省我的時間:) – 2012-10-23 05:37:15

0

您正在尋找Checked物業?

public void mnuUncheck() 
{ 
    foreach (ToolStripMenuItem Item in mnuStripMain.Items) 
    { 
     Item.Checked = false; 
    } 
} 
+0

經過近一個菜單條項的「V」標誌,對不對?我在談論選擇,當你將鼠標懸停在上下文菜單項上時會發生什麼。 – Istrebitel 2012-04-26 05:40:01

0

以謝爾蓋的做法,也有在ToolStripItem的內部方法,你可以調用:

MethodInfo methodInfo = typeof(ToolStripItem).GetMethod("Unselect", BindingFlags.NonPublic | BindingFlags.Instance); 
methodInfo.Invoke(yourToolStripItem, null);