コンテキストメニューのカスタマイズ

ContextMenuBuilderイベントを使用することで、グラフを右クリックしたときに表示されるコンテキストメニューに、項目の追加や削除を行えます。

なおコンテキストメニューは、ZedGraphControlオブジェクトのIsShowContextMenuプロパティがtrueになっていなければ表示されません。


既定のコンテキストメニュー

※コンテキストメニューが英語で表示される場合には日本語化します。

public delegate void ContextMenuBuilderEventHandler(
    ZedGraphControl sender,     // イベントを発生させた ZedGraphControlオブジェクト
    ContextMenuStrip menuStrip, // 現在のコンテキストメニュー
    Point mousePt,              // マウスがクリックされた位置
    ZedGraphControl.ZedGraphControl.ContextMenuObjectState objState // 現在のコンテキストメニューの状態
    )

イベントハンドラに渡される第2引数のmenuStripはSystem.Windows.FormsのContextMenuStrip型であるため、通常のコンテキストメニューを処理する方法でカスタマイズできます。ContextMenuStripクラス (System.Windows.Forms) | MSDN

サンプルコード

this.zedGraphControl.ContextMenuBuilder
    += new ZedGraphControl.ContextMenuBuilderEventHandler( ContextMenuBuilderHandler );
private void ContextMenuBuilderHandler( ZedGraphControl sender, ContextMenuStrip menuStrip, Point mousePt, ZedGraphControl.ContextMenuObjectState objState )
{
    ToolStripMenuItem item = new ToolStripMenuItem();

    item.Text = "新しい項目";
    item.Click += new System.EventHandler( MenuItem_Click );

    // メニューに項目を追加する
    menuStrip.Items.Add( item );
}
private void MenuItem_Click( object sender, EventArgs args )
{
    // メニューがクリックされたときの処理を行う
}