C#将复选框添加到WinForms上下文菜单

时间:2009-07-01 15:09:22

标签: c# checkbox

我在表单上有一系列复选框。 我希望能够从上下文菜单以及表单本身中选择它们。上下文菜单链接到应用程序的系统托盘图标。

我的问题是,是否可以将上下文菜单链接到这些复选框? 甚至可以在上下文菜单中添加复选框? 甚至是组合?!

4 个答案:

答案 0 :(得分:16)

菜单项包含Checked属性(MenuItem.CheckedToolStripMenuItem.Checked),您可以将其用于此目的。

关于将上下文菜单项链接到复选框的可能性,如果您使用ContextMenuStrip并将CheckOnClick属性设置为true,则可以挂钩{{1} }事件到应该“链接”的CheckedChangedToolStripMenuItem控件的相同事件处理程序,并且在该事件处理程序内部确保同步控件的CheckBox属性并执行任何操作其他需要的行动。

答案 1 :(得分:1)

好吧,一个菜单项有“Checked”属性,这可以使它像一个复选框。单击菜单项时,可以通过编程方式切换表单上相应复选框的状态。

您还可以使用上下文菜单的Opening事件根据复选框的选中状态设置菜单项的Checked状态。

答案 2 :(得分:1)

您可以通过将它们包装在ToolStripControlHost

中来托管标准和自定义控件

http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripcontrolhost.aspx

答案 3 :(得分:1)

  //Create the combo box object and set its properties
  cmbFunctionArea               = new ComboBox();
  cmbFunctionArea.Cursor        = System.Windows.Forms.Cursors.Arrow;
  cmbFunctionArea.DropDownStyle=System.Windows.Forms.ComboBoxStyle.DropDownList;
  cmbFunctionArea.Dock          = DockStyle.Fill;
  //Event that will be fired when selected index in the combo box is changed
  cmbFunctionArea.SelectionChangeCommitted += new   EventHandlercmbFunctionArea_SelectedIndexChanged);