C# Winform 开发框架集成快捷键功能 (Hotkey)

  C# Winform 开发框架集成快捷键功能 (Hotkey)

C# Winform 开发框架集成快捷键功能 (Hotkey)


有两种做法:


1. Windows 勾子,参考:C# 注册系统热键/快捷键(MainForm HotKey) 
   此方案有个缺点,会强制占用其它软件的热键,比如:Ctrl+C。


2. Form.KeyDown事件,需要设置Form.KeyPreview为True。


注意:Ctrl键容易与OS系统的热键冲突,建议改为Alt键。



贴图图片




开发框架内是使用KeyDown事件集成快捷键功能的,代码如下:

frmBase:

C# Code:

//处理用户按键事件

private void frmBase_KeyDown(object sender, KeyEventArgs e)

{

  if (e.Alt && (e.KeyCode >= Keys.A) && (e.KeyCode < Keys.Z))

  {

    this.DoExecuteHotKey(e);

    return;

  }

}


protected virtual void DoExecuteHotKey(KeyEventArgs e)

{

  //虚拟方法,由派生窗体处理自己的热键。

}



frmBaseChild:

C# Code:

        protected override void DoExecuteHotKey(KeyEventArgs e)

        {

            if (e.Alt)

            {

                if (e.KeyCode == Keys.H) this.DoHelp(null); //Ctrl+H:帮助

                else if (e.KeyCode == Keys.X) this.DoClose(null);//Ctrl+X:关闭

                else base.DoExecuteHotKey(e);

            }

        }



frmBaseDataForm:
 

C# Code:

protected override void DoExecuteHotKey(KeyEventArgs e)

        {

            if (e.Alt)

            {

                if (e.KeyCode == Keys.V) this.DoViewContent(_buttons.GetButtonByName("btnView"));//查看

                else if (e.KeyCode == Keys.N) this.DoAdd(_buttons.GetButtonByName("btnAdd"));//新增

                else if (e.KeyCode == Keys.D) this.DoDelete(_buttons.GetButtonByName("btnDelete"));//删除

                else if (e.KeyCode == Keys.E) this.DoEdit(_buttons.GetButtonByName("btnEdit"));//修改

                else if (e.KeyCode == Keys.P) this.DoPrint(_buttons.GetButtonByName("btnPrint"));//打印

                else if (e.KeyCode == Keys.S) this.DoSave(_buttons.GetButtonByName("btnSave"));//保存

                else if (e.KeyCode == Keys.C) this.DoCancel(_buttons.GetButtonByName("btnCancel"));//取消

                else base.DoExecuteHotKey(e);//由基类处理

            }

        }



//来源:C/S框架网(www.csframework.com) QQ:1980854898




C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

C# Winform 开发框架集成快捷键功能 (Hotkey)
C# 注册系统热键/快捷键(MainForm HotKey)
Winform开发框架功能细节处理集锦
C/S快速开发框架多语言功能集成百度翻译接口(支持中文简体、繁体、英文、越南文)
关于Winform开发框架桥接功能
C# Winform开发框架C# Winform开发平台
C/S框架V2.0版集成高级查询功能
原创文档-Winform开发框架提供通用导入Excel功能界面|C/S框架
C# 注册系统热键,快捷键
C# Winform 开发平台新功能 - C/S系统开发框架旗舰版V5.0
Winform 开发框架 Winform 开发平台
Winform开发框架核心功能 - 主窗体与模块架构
Winform开发框架-模块功能窗体注册与配置
Winform界面的功能按钮同等权限控制|C/S框架
Winform快速开发框架之权限系统设计(3) - 功能按钮权限控制基本原理
Winform开发框架 - 特殊权限控制(扩展权限和自定义按钮功能)
主程序集成升级程序
Winform快速开发框架之权限系统设计(2) - 功能模块介绍
关于Winform框架C/S快速开发平台
C/S框架网提供基于C#.NET前端Winform开发框架及后端WebApi开发框架