关键词搜索

源码搜索 ×
×

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

发布2020-12-14浏览289次

详情内容

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

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

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

最终实现效果如下

实现
首先在循环所有的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;
                }
            }

    然后在扩展右键c#教程菜单时自定义二级子菜单效果,并在子菜单中执行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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    完整示例代码
    首先右键菜单事件python基础教程
    重新订阅

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

    然后在实现事件中

    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
            }
    
      53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载