2012-09-13 37 views
6

我正在設計一個日誌功能,用戶可以在其中選擇要登錄的事件。 在點擊按鈕時,我表現出這種類型的菜單: Context Menu on Button click顯示上下文MenuStrip或上下文菜單按鈕的複選框

用戶可以選擇多個活動,所以我需要出示「檢查標記」所選擇的選項的盈方在用戶點擊它。

我找不到像this question中提到的「Checked」或「CheckOnClick」之類的任何選項。

我嘗試使用ContextMenu和ContextMenuStrips,但無法實現複選框。 有什麼建議?

+0

如果我的回答您提供幫助的,請你這麼好心接受它作爲將來訪港正確的答案。謝謝。 –

回答

9

沒有看到任何代碼,所以我不知道如何創建此菜單。但從最一般的角度來說,這裏是您如何訪問Checked屬性。

((ToolStripMenuItem)contextMenuStrip.Items[0]).Checked = true; //false; 
((ToolStripMenuItem)contextMenuStrip.Items[1]).Checked = true; //false; 
((ToolStripMenuItem)contextMenuStrip.Items[2]).Checked = true; //false; 

您可以將它們分配爲true或false。如果您已命名ToolStripItems,那麼您可以直接訪問它們,而不是訪問Items陣列。

contextMenuStrip.event1.Checked = true; //false; 

正如您所看到的,我正在使用ContextMenuStrip

+0

但它看起來不像UI中的複選框?!只是表現得像? –

+0

我會補充說,ShowCheckMargin屬性必須設置爲true,如下面的答案所述。 – Russell

1

雖然你可以使用:

((ToolStripMenuItem)contextMenuStrip.Items[0]).Checked = true; //false; 

這可能是危險的,因爲在以後的日子你可能會重新排序菜單項,然後將代碼不匹配。

相反,在設計師點擊菜單,然後項目(如事件1)上看到的屬性,並設置項目修飾符公共內部。然後在你的代碼,你可以鍵入項目的名稱,並設置檢查:

event1_ToolStripMenuItem.Checked = true; //false; 

注意:您不需要鍵入contet菜單條的名稱。只是項目名稱。

3

爲了使其在視覺上工作,您需要確保「ShowCheckMargin」屬性爲ON。否則,「.Checked」屬性將默默無聞。

3

更改屬性CheckOnClick

enter image description here