Winforn中实现ZedGraph自定义添加右键菜单项(附源码下载)

时间:2021-03-12 05:47:46

场景

Winform中实现ZedGraph中曲线右键显示为中文:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100115292

在上面实现将ZedGraph的右键显示为中文后,再实现自定义菜单的添加。

效果

Winforn中实现ZedGraph自定义添加右键菜单项(附源码下载)

源码下载

https://download.csdn.net/download/badao_liumang_qizhi/11636420

实现

前面已经将鼠标的右键事件与方法绑定

this.zedGraphControl1.ContextMenuBuilder += MyContextMenuBuilder;

在方法MyContextMenuBuilder中

//新建菜单项对象
ToolStripMenuItem item1 = new ToolStripMenuItem();
//设置名字
item1.Name = "line_set";
//设置显示文本
item1.Text = "霸道流氓";
//点击事件与方法绑定
item1.Click += mouseEnter;
//菜单项添加到右键菜单
menuStrip.Items.Add(item1);

实现了添加一个右键菜单,将其点击事件与mouseEnter方法绑定。

在窗体类下定义事件

//MouseEventHandler :表示将处理窗体、控件或其他组件的 MouseDown、MouseUp 或 MouseMove 事件的方法。
// event关键字代表事件,返回类型为委托;
public static event EventHandler mouseEnter;

然后在初始化窗体的位置将事件与自定义方法相绑定。

public Form1()
{
InitializeComponent();
//Form1初始化后创建设置控件的方法并将当前ZedGraph控件传递
createPane(zedGraphControl1);
//事件与方法绑定
mouseEnter += new EventHandler(OnmouseEnter); }

位置

Winforn中实现ZedGraph自定义添加右键菜单项(附源码下载)

完整MyContextMenuBuilder方法

 private static void MyContextMenuBuilder(ZedGraphControl control, ContextMenuStrip menuStrip,
Point mousePt, ZedGraphControl.ContextMenuObjectState objState)
{
//新建菜单项对象
ToolStripMenuItem item1 = new ToolStripMenuItem();
//设置名字
item1.Name = "line_set";
//设置显示文本
item1.Text = "霸道流氓";
//点击事件与方法绑定
item1.Click += mouseEnter;
//菜单项添加到右键菜单
menuStrip.Items.Add(item1);
//汉化右键菜单
foreach (ToolStripMenuItem item in menuStrip.Items)
{
switch (item.Name)
{
case "copied_to_clip":
item.Text = @"复制到剪贴板";
break;
case "copy":
item.Text = @"复制";
break;
case "page_setup":
item.Text = @"页面设置...";
break;
case "print":
item.Text = @"打印...";
break;
case "save_as":
item.Text = @"另存图表...";
break;
case "set_default":
item.Text = @"恢复默认大小";
break;
case "show_val":
item.Text = @"显示节点数值";
break;
case "title_def":
item.Text = @"标题";
break;
case "undo_all":
item.Text = @"还原缩放/移动";
break; case "unpan":
item.Text = @"还原移动";
break; case "unzoom":
item.Text = @"还原缩放";
break; case "x_title_def":
item.Text = @"X 轴";
break;
case "y_title_def":
item.Text = @"Y 轴";
break; }
}
}