3

これのおかげで右クリックメニューをカスタマイズします:

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()、送信者のプロパティCheckedが true に設定されていることがわかります。

何が欠けていますか?

4

2 に答える 2

0

メニューは熱に基づいて構築されているためcheckOnClick、メニューが非表示になるたびにオブジェクトが破棄されるため (おそらく)、何の意味もありません。

解決策は、プロパティを設定することでした:

// showOneCursor is a bool describing my need and toggled on click
item.Checked = showOneCursor; 
于 2014-09-26T07:57:11.950 に答える