C# 如何在菜单上单击切换按钮以在单击菜单时更改颜色?

C# 如何在菜单上单击切换按钮以在单击菜单时更改颜色?,c#,C#,我有此菜单单击事件,例如: private void testToolStripMenuItem_Click(object sender, EventArgs e) { if (testToolStripMenuItem.Checked == true) { testToolStripMenuItem.ForeColor = Color.Red; } e

我有此菜单单击事件,例如:

private void testToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (testToolStripMenuItem.Checked == true)
            {
                testToolStripMenuItem.ForeColor = Color.Red;
            }
            else
            {
                testToolStripMenuItem.ForeColor = Color.Black;
            }
        }
我想这样做,当用户点击一次菜单上的菜单文本将是红色的,一旦他再次点击它将返回黑色


另一件事/问题:当用户将鼠标移到菜单上时,我如何避免/禁用这种情况,以便菜单周围被涂成蓝色。我如何确保当用户将鼠标移到菜单上时,菜单是规则的,不会被涂成蓝色?

您必须在
checkedChange
事件中更改项目的前景色

private void testToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
{
    if ( testToolStripMenuItem.Checked == true)
        testToolStripMenuItem.ForeColor = Color.Red;
    else
        testToolStripMenuItem.ForeColor = Color.Black;
}

哈米德工作得很好,我用了一面旗子,叫它Buttonsitch。但是你的解决方案也很有效!现在我需要或者我想解决第二个问题,当鼠标移动到菜单上时,它会将菜单涂成蓝色还是淡蓝色…@daniellip我没有找到任何方法来禁用菜单项上的hilights。@daniellip就第二个问题而言,它是可以解决的,您需要创建自定义ToolStripMenuItem并在OnPaint事件中处理绘制。这称为OwnerDrawn控件。此页上有一个自定义控件的示例。