繁体   English   中英

显示按钮的上下文菜单条或上下文菜单的复选框

[英]Show checkbox for Context MenuStrip or Context Menu of a button

我正在设计一个日志记录功能,用户可以在其中选择他想要记录的事件。 单击按钮时,我将显示此类菜单:单击按钮时的上下文菜单

用户可以选择多个事件,因此当用户单击它时,我需要在所选选项前显示“复选标记”。

我找不到这个问题中提到的任何选项,如“已检查”或“检查点击”。

我尝试使用 ContextMenu 和 ContextMenuStrips 但无法实现复选框。 有什么建议么??

看不到您的任何代码,所以我不知道您是如何创建此菜单的。 但在最一般的情况下,以下是您如何访问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

将属性CheckOnClick更改为True

在此处输入图片说明

为了使其直观地工作,您需要确保“ShowCheckMargin”属性为ON。 否则“.Checked”属性将不做任何事情。

虽然你可以使用:

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

这可能很危险,因为稍后您可能会重新排列菜单项,然后代码将不匹配。

相反,在设计器中单击菜单然后单击项目(如 Event1)以查看属性并将项目Modifiers设置为PublicInternal 然后在您的代码中,您可以键入项目的名称并设置检查:

event1_ToolStripMenuItem.Checked = true; //false;

注意:您不需要键入内容菜单条的名称。 只是项目名称。

如果您没有看到复选标记但焦点矩形与 ToolStripMenuItem 文本部分重叠,则将 ImageScaling 设置为 None 可能会有所帮助(在我的情况下,似乎焦点矩形实际上是一个与文本重叠的非常宽的复选标记)。

您可能需要在 Opening 事件中设置 Checked 属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM