1.在VS中添加contextMenuStrip控件,contextMenuStrip的屬性可以直接設置或用代碼進行設置。
2.基本使用:
(1)添加控件後,一般是跟其他控件綁定在一起,通過在主界面控件中設置其ContextMenuStrip屬性,選中新建的控件對象即可。
(2)在winform設計界面可以直觀地對contextMenuStrip內容進行添加,包括menuitem/combobox/separator/textbox
(3)如果要在選項點擊後,該選項打勾。則設置CheckOnClick
winform可能在界面美化上有所不足,但基本功能齊全,使用控件多看其屬性。
3.問題:右鍵後contextMenuStrip菜單出現,用戶可以一次性點擊多個菜單選項,而不是點擊任意選項後contextMenuStrip馬上消失。
(1)contextMenuStrip控件中有相關屬性autoclose,將此屬性設置爲false,則右鍵菜單出現後,被用戶隨意點擊都不會關閉。
而且需要注意的是autoclose只對contextMenuStrip一級菜單有效,對後續子菜單無效。
(2)MSDN上說了,一般請考慮處理 Closing 事件而不是設置 AutoClose 屬性。進行相關設置的方法可參考如下
private void contextMenuStrip1_Closing(object sender, ToolStripDropDownClosingEventArgs e)
{
if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
{ e.Cancel = true; }
}
(3)若要通過點擊的選項文本來判斷是否關閉
private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem.Text == ((ContextMenuStrip)sender).Items[0].Text)//或者e.ClickedItem == ((ContextMenuStrip)sender).Items[0]
//用戶選擇第一項時
{
}
}