自定义Spread中快捷键行为

发布时间:2012/11/13 00:11 发布者:葡萄城产品团队

返回博客中心

Spread中本身内置了很多快捷键操作,不过有时候我们也需要实现一些自定义的快捷键行为,在Spread中只需继承FarPoint.Win.Spread.Action就可以实现自定义的快捷键。

本文简单介绍如何实现自定义的Delete键快捷行为,我们实现的功能是按下Delete时,只清空单元格的Value,不清空单元格的样式设置,如果单元格处于锁定状态不进行清空操作,代码实现如下:
  1.     
    public class ClearValueAction : FarPoint.Win.Spread.Action
    
        {
    
            public override void PerformAction(object source)
    
            {
    
                if (source is SpreadView)
    
                {
    
                    SpreadView spread = (SpreadView)source;
    
                    SheetView sheet = spread.Sheets[spread.ActiveSheetIndex];
    
                    CellRange cr = sheet.GetSelection(0);
    
                    StyleInfo si = new StyleInfo();
    
    
    
                    for (int r = 0; r < cr.RowCount; r++)
    
                    {
    
                        for (int c = 0; c < cr.ColumnCount; c++)
    
                        {
    
                            sheet.Models.Style.GetCompositeInfo(cr.Row + r, cr.Column + c, -1, si);
    
                            if (!si.Locked)
    
                            {
    
                                sheet.Cells[cr.Row + r, cr.Column + c].ResetValue();
    
                            }
    
                        }
    
                    }
    
                }
    
            }
    
        }
    
    复制代码
    给Spread添加自定义的快捷键:
  1.   
    private void Form1_Load(object sender, EventArgs e)
    
        {
    
            InputMap im = fpSpread1.GetInputMap(InputMapMode.WhenFocused);
    
            ActionMap am = fpSpread1.GetActionMap();
    
            im.Put(new Keystroke(Keys.Delete, Keys.None), "ClearValue");
    
            am.Put("ClearValue", new ClearValueAction());
    
        }
    
    复制代码
    源码下载:VS2010 + Spread .NET 6.0.3505

0000_Clear.zip (11.09 K, 下载次数:13)

关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网