【Spread】自定义用户键盘操作行为

处理键盘事件时应用系统中非常普遍的需求,通常我们需要处理KeyDown事件,并在事件中添加相应的代码。有时候我们需要处理控件内部处理过的事件,在 WPF/Silverlight/WinRT 平台中,我们可以通过 AddHandler 方法来监听事件处理。

发布于 2013/03/29 00:00

处理键盘事件是应用系统中非常普遍的需求,通常我们需要处理KeyDown事件,并在事件中添加相应的代码。有时候我们需要处理控件内部处理过的事件,在 WPF/Silverlight/WinRT 平台中,我们可以通过 AddHandler 方法来监听事件处理。

比如以下代码:

public MainPage()
{
    InitializeComponent();
    this.gcSpreadSheet1.AddHandler(UIElement.KeyDownEvent, new KeyEventHandler(GcSpreadSheet_KeyDown), true);
}
 
private void GcSpreadSheet_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.C && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
    {
        // 业务逻辑代码
    }
}

然而,通过这种方法控件还是会触发控件的行为,如何才能替换特定控件的键盘行为呢,Spread(for WPF/Silverlight/WinRT)中提供了一种灵活的自定义键盘行为的方法,通过这种方法可以替换控件内置的键盘事件逻辑,从而实现自定义的业务逻辑。

比如以下代码:

public MainPage()
{
    InitializeComponent();
    this.gcSpreadSheet1.View.KeyMap.Remove(new KeyStroke(Key.C, ModifierKeys.Control)); // remove build-in key mapping
    this.gcSpreadSheet1.View.KeyMap.Add(new KeyStroke(Key.C, ModifierKeys.Control), new SpreadAction(OnMyAction)); // map the key to your own action
}
private void OnMyAction(object sender, ActionEventArgs e)
{
    // business logic code
}

 

以上代码适用于Spread WPF/Silverlight和Spread WinRT中产品。

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

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

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

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