场景

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

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

在上面博客实现的自定义右键以及汉化右键的基础上,怎样实现将自带的右键功能比如打印和页面设置合并为一个选项打印,并将上两个合并为其二级子菜单。

最终实现效果如下

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

首先在循环所有的menuStrip.Items时候,通过item.Visible = false;将原来的打印与打印页面设置的item禁用。

foreach (ToolStripMenuItem item in menuStrip.Items){switch (item.Name){case "copied_to_clip":item.Text = @"复制到剪贴板";break;case "copy":item.Text = @"复制";item.Click += item_Click;break;case "page_setup":item.Text = @"打印页面设置";item.Visible = false;break;case "print":item.Text = @"打印";item.Visible = false;break;case "save_as":item.Text = @"另存图表...";break;case "set_default":item.Text = @"恢复默认大小";break;case "show_val":item.Text = @"显示节点数值";item.Visible = false;break;case "title_def":item.Text = @"标题";break;case "undo_all":item.Text = @"还原所有缩放";item.Visible = false;break;case "unpan":item.Text = @"还原上一步缩放";item.Visible = false;break;case "unzoom":item.Text = @"还原缩放";item.Visible = false;break;case "x_title_def":item.Text = @"X 轴";break;case "y_title_def":item.Text = @"Y 轴";break;}}

然后在扩展右键菜单时自定义二级子菜单效果,并在子菜单中执行ZedControl的自带的右键事件。

     ToolStripMenuItem mnuDirectPrint = new ToolStripMenuItem("直接打印");mnuDirectPrint.Name = "directPrint";mnuDirectPrint.Text = "直接打印";mnuDirectPrint.Click += delegate(object sender, EventArgs e){control.DoPrint();};ToolStripMenuItem mnuPrintPageSet = new ToolStripMenuItem("打印页面设置");mnuPrintPageSet.Name = "printPageSet";mnuPrintPageSet.Text = "打印页面设置";mnuPrintPageSet.Click += delegate(object sender, EventArgs e){control.DoPageSetup();};ToolStripMenuItem mnuPrint = new ToolStripMenuItem();mnuPrint.Name = "mnuPrint";mnuPrint.Text = "打印";mnuPrint.DropDownItems.Add(mnuDirectPrint);mnuPrint.DropDownItems.Add(mnuPrintPageSet);menuStrip.Items.Add(mnuPrint);

完整示例代码

首先右键菜单事件重新订阅

            zgc.ContextMenuBuilder -= zgc_ContextMenuBuilder;     //上下文菜单生成事件订阅zgc.ContextMenuBuilder += zgc_ContextMenuBuilder;     //上下文菜单生成事件订阅

然后在实现事件中

 private static void zgc_ContextMenuBuilder(ZedGraphControl control, ContextMenuStrip menuStrip, Point mousePt, ZedGraphControl.ContextMenuObjectState objState){#region 扩展上下文菜单#region 打印ToolStripMenuItem mnuDirectPrint = new ToolStripMenuItem("直接打印");mnuDirectPrint.Name = "directPrint";mnuDirectPrint.Text = "直接打印";mnuDirectPrint.Click += delegate(object sender, EventArgs e){control.DoPrint();};ToolStripMenuItem mnuPrintPageSet = new ToolStripMenuItem("打印页面设置");mnuPrintPageSet.Name = "printPageSet";mnuPrintPageSet.Text = "打印页面设置";mnuPrintPageSet.Click += delegate(object sender, EventArgs e){control.DoPageSetup();};ToolStripMenuItem mnuPrint = new ToolStripMenuItem();mnuPrint.Name = "mnuPrint";mnuPrint.Text = "打印";mnuPrint.DropDownItems.Add(mnuDirectPrint);mnuPrint.DropDownItems.Add(mnuPrintPageSet);menuStrip.Items.Add(mnuPrint);#endregion#region 缩放ToolStripMenuItem mnuReductLast = new ToolStripMenuItem("还原上一步缩放");mnuReductLast.Name = "mnuReductLast";mnuReductLast.Text = "还原上一步缩放";mnuReductLast.Click += delegate(object sender, EventArgs e){control.ZoomOut(control.GraphPane);};ToolStripMenuItem mnuReductAll = new ToolStripMenuItem("还原所有缩放");mnuReductAll.Name = "mnuReductAll";mnuReductAll.Text = "还原所有缩放";mnuReductAll.Click += delegate(object sender, EventArgs e){control.ZoomOutAll(control.GraphPane);};ToolStripMenuItem mnuReduct = new ToolStripMenuItem();mnuReduct.Name = "mnuReduct";mnuReduct.Text = "缩放";mnuReduct.DropDownItems.Add(mnuReductLast);mnuReduct.DropDownItems.Add(mnuReductAll);menuStrip.Items.Add(mnuReduct);#endregion#endregion#region 汉化上下文菜单中的菜单项foreach (ToolStripMenuItem item in menuStrip.Items){switch (item.Name){case "copied_to_clip":item.Text = @"复制到剪贴板";break;case "copy":item.Text = @"复制";item.Click += item_Click;break;case "page_setup":item.Text = @"打印页面设置";item.Visible = false;break;case "print":item.Text = @"打印";item.Visible = false;break;case "save_as":item.Text = @"另存图表...";break;case "set_default":item.Text = @"恢复默认大小";break;case "show_val":item.Text = @"显示节点数值";item.Visible = false;break;case "title_def":item.Text = @"标题";break;case "undo_all":item.Text = @"还原所有缩放";item.Visible = false;break;case "unpan":item.Text = @"还原上一步缩放";item.Visible = false;break;case "unzoom":item.Text = @"还原缩放";item.Visible = false;break;case "x_title_def":item.Text = @"X 轴";break;case "y_title_def":item.Text = @"Y 轴";break;}}#endregion}

ZedGraph怎样实现将图形右键菜单的打印和页面设置合并为打印的二级子菜单相关推荐

  1. android二级菜单ui,巧用PopupMenu实现NavigationView的二级子菜单

    来简书的第一篇文章,想了想就以这个作为开头了^^ 概述 写自己的app时,发现NavigationView的默认菜单功能不支持类似OptionMenu那样点击后弹出二级子菜单的功能,思考了下想用Pop ...

  2. asp+ajax菜单,AJAX_基于asp+ajax和数据库驱动的二级联动菜单,index.asp 页面代码 复制代码 代 - phpStudy...

    基于asp+ajax和数据库驱动的二级联动菜单 index.asp 页面代码 复制代码 代码如下: set cmd = conn.execute("select bigclassid,big ...

  3. html左侧二级子菜单隐藏,二级菜单显示与隐藏效果

    无标题文档 *{ margin:0px; padding:0px;} body{ font-family:Verdana, Geneva, sans-serif; font-size:14px;} n ...

  4. php在菜单栏里加子菜单,WordPress后台添加子菜单add_submenu_page()

    接上文:WordPress后台添加顶级菜单add_menu_page(),今儿再分享一下在 wordpress 后台侧边栏添加子菜单的方法,用到的函数是:add_submenu_page() 函数用法 ...

  5. 原生JS制作自动+手动轮播图,附带二级分类菜单

    原生JS制作自动+手动轮播图,附带二级分类菜单 包含以下功能: 1.鼠标移开自动轮播 2.鼠标移入停止自动轮播 3.点击左右按钮可手动切换图片 4.点击索引小圆点可手动切换图片 5.鼠标移入一级菜单展 ...

  6. 在菜单Setting加入子菜单

    可以模仿Settings其他菜单项加入自己想要的一级或二级子菜单项. 比如,在菜单Settings里加入一级和二级Usb Mode Settings菜单项 (以Android4.4 KK为例) 一. ...

  7. Android菜单详解——子菜单(SubMenu)

    1,子菜单就是将功能相同或相似的分组进行多级显示的一种菜单. 2,创建子菜单的步骤: a) 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu() ...

  8. 选项菜单_上下文菜单_子菜单_图标菜单_自定义菜单_联系人标记弹出菜单

    菜单控件<Menu > 选项菜单(Option Menu) 单击Menu实体按钮弹出,android中把它叫做option menu 上下文菜单(ContextMenu 是Menu的子接口 ...

  9. ant design Menu组件子菜单样式设置

    ant design Menu组件子菜单样式设置 Menu二级子菜单宽度较宽,直接设置width不起作用,会被他自带的min-width覆盖 解决办法:设置组件的全局样式,提升优先级,如下所示: &l ...

最新文章

  1. SAP CRM BOL attribute_ref的merge逻辑调试
  2. C++ #include <.h>和“.h“的区别
  3. Eclipse集成svn后出现Failed to load JavaHL Library的解决办法
  4. 【OpenCV 例程200篇】13. 图像的加法运算(cv2.add)
  5. 第一次大作业总结——四则运算程序
  6. dom块级元素的各种宽高
  7. 配合蓝牙打印的encoding-indexes.js文件内容:
  8. sql server 2000(迷你sql2000) jdbc驱动
  9. windows 11 去掉桌面图标的小箭头方法
  10. 文献解读|迁徙蝗虫生理和转录水平的衰老特征
  11. 【大杂烩】杂7杂8的东西
  12. php yii2框架仿站教程,从零开始学YII2框架(六)高级应用程序模板,yii2框架
  13. 黑炫酷的监控界面,实际上是用了什么开源工具?
  14. 虚拟机中的centos在nat模式下连不上外网
  15. 我的自白--道路与梦想
  16. 字节跳动(抖音)收购VR眼镜厂商Pico的划时代意义
  17. LeetCode第187场周赛(Weekly Contest 187)解题报告
  18. 会计计算机实训结果及分析,会计学实验报告的结果与分析怎么写?
  19. 基于SpringBoot满天星幼儿园管理系统
  20. egg导出excel功能

热门文章

  1. 项目管理:五大过程组十大领域
  2. spring @import注解使用场景
  3. Error while adding the mapper ‘interface *****类‘ to configuration报错原因
  4. vue中的if判断和for循环语句
  5. 谷歌为什登不上去github_我们分析了GitHub上5.46 亿条日志,发现中国开源虽然贡献大但还有这些不足......
  6. java json自定义_java返回json设置自定义的格式
  7. dhcp request汉字乱码分析
  8. vs2010 调试窗口debugger UTF8 显示汉字 乱码
  9. LeetCode14 最长公共前缀
  10. 如果政府强制开发linux应用,Linux开发环境及应用-中国大学mooc-题库零氪