自定义Zedgraph ToolStripMenuItem在单击时不会检查

问题描述 投票:3回答:2

由于此,我自定义了右键菜单:

lineGraphControl1.ContextMenuBuilder += new ZedGraphControl.ContextMenuBuilderEventHandler(MyContextMenuBuilder);

private void MyContextMenuBuilder(ZedGraphControl control, ContextMenuStrip menuStrip, Point mousePt, ZedGraphControl.ContextMenuObjectState objState)
{
    // create a new menu item
    ToolStripMenuItem item = new ToolStripMenuItem();
    // This is the user-defined Tag so you can find this menu item later if necessary
    item.Name = "simple_cursor";
    // This is the text that will show up in the menu
    item.Text = "Simple Cursor";
    item.CheckOnClick = true;
    // Add a handler that will respond when that menu item is selected
    item.Click += new System.EventHandler(DisplaySimpleCursor);
    // Add the menu item to the menu
    menuStrip.Items.Add(item);
}

但是单击菜单时Simple Cursor不会被选中。我尝试在功能DisplaySimpleCursor()中强制发送者,但它不起作用。

[调试应用程序时,我看到在DisplaySimpleCursor()中,发件人的属性已检查设置为true。

我想念什么?

c# zedgraph toolstripmenu
2个回答
0
投票

由于菜单是靠加热构建的,因此checkOnClick毫无意义,因为每次隐藏菜单时对象都会被破坏(我想)。

解决方案是设置属性:

// showOneCursor is a bool describing my need and toggled on click
item.Checked = showOneCursor; 

0
投票

尝试一下。

 private bool check;
    public bool Check
    {
        get { return check; }
        set { check= value; }
    }
private void MyContextMenuBuilder(ZedGraphControl control, ContextMenuStrip menuStrip, Point mousePt, ZedGraphControl.ContextMenuObjectState objState)
{
    ToolStripMenuItem item = new ToolStripMenuItem();
    item.Name = "simple_cursor";
    item.Text = "Simple Cursor";
    item.CheckOnClick = true;
        item.Checked = Check; //add this
    item.Click += new System.EventHandler(DisplaySimpleCursor);
    menuStrip.Items.Add(item);
}


 private void DisplaySimpleCursor(object sender, EventArgs e)
        {
            Check = false==Check;
        }
© www.soinside.com 2019 - 2024. All rights reserved.