在Spread中添加上下文菜单 ( 右键菜单 )

本文只要通过代码讲解如何在Spread中添加上下文菜单 ( 右键菜单 )

发布于 2012/11/13 00:00

SpreadJS

Demo运行截图:

我们就结合【表单标签】区域来演示如何给Spread的不同区域指定不同的右键菜单,我们要给【表单标签】区域添加一个右键菜单,菜单中包含【复制】、【剪切】、【粘贴】和【删除】功能。

1、首先需要使用到Spread的MouseUp事件,在该事件中来判断右键单击的是哪个区域

 
private void fpSpread1_MouseUp(object sender, MouseEventArgs e)

    {

        HitTestInformation hitInfo = fpSpread1.HitTest(e.X, e.Y);



        // 根据右键单击的位置来判断,是否应该显示TabStrip的右键菜单

        if (e.Button == System.Windows.Forms.MouseButtons.Right && hitInfo.Type == HitTestType.TabStrip)

        {

            if (hitInfo.TabStripInfo.Sheet != -1 && hitInfo.TabStripInfo.Sheet != fpSpread1.Sheets.Count)

            {

                fpSpread1.ActiveSheetIndex = hitInfo.TabStripInfo.Sheet;

                TabStripContextMenu.Show(fpSpread1, e.Location);

            }

        }

    }

复制代码

上面代码首先调用了fpSpread1.HitTest(e.X, e.Y)方法,然后通过 Type 属性来判断右键单击的区域。

2、实现菜单项的单击事件

  1.     
    private void TabStripContextMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
    
        {
    
            switch (e.ClickedItem.Name)
    
            {
    
                case "copyMenuItem":
    
                    // 复制Sheet
    
                    copiedSheetView = CopySheet(fpSpread1.ActiveSheet);
    
                    SetContextMenuState();
    
                    break;
    
                case "cutMenuItem":
    
                    // 剪切Sheet
    
                    copiedSheetView = fpSpread1.ActiveSheet;
    
                    fpSpread1.Sheets.Remove(fpSpread1.ActiveSheet);
    
                    SetContextMenuState();
    
                    break;
    
                case "pasteMenuItem":
    
                    // 粘贴Sheet
    
                    PasteSheet();
    
                    break;
    
                case "deleteMenuItem":
    
                    // 删除Sheet
    
                    DeleteSheet();
    
                    SetContextMenuState();
    
                    break;
    
                default:
    
                    break;
    
            }
    
        }
    
    复制代码
    源码:VS2010 + .net4.0 + Spread .net 6.0.3505

SpreadJS | 下载试用

纯前端表格控件SpreadJS,兼容 450 种以上的 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品特性,备受华为、苏宁易购、天弘基金等行业龙头企业的青睐,并被中国软件行业协会认定为“中国优秀软件产品”。SpreadJS 可为用户提供类 Excel 的功能,满足表格文档协同编辑、 数据填报、 类 Excel 报表设计等业务场景需求,极大的降低企业研发成本和项目交付风险。

如下资源列表,可以为您评估产品提供帮助:

相关产品
推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态