C# Winform 开发框架集成快捷键功能 (Hotkey)
C# Winform 开发框架集成快捷键功能 (Hotkey)
有两种做法:
1. Windows 勾子,参考:C# 注册系统热键/快捷键(MainForm HotKey)
此方案有个缺点,会强制占用其它软件的热键,比如:Ctrl+C。
2. Form.KeyDown事件,需要设置Form.KeyPreview为True。
注意:Ctrl键容易与OS系统的热键冲突,建议改为Alt键。
开发框架内是使用KeyDown事件集成快捷键功能的,代码如下:
frmBase:
//处理用户按键事件
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:
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:
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

Winform开发框架功能细节处理集锦
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)|C/S开发框架
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
最新MES系统快速开发平台(Winform+NET8+EFCore)|C/S开发框架
Winform软件开发框架|快速开发平台推荐|C/S开发框架
Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架
DevExpress组件版本下载、安装与VS开发环境 | Winform C/S框架|C/S开发框架
使用Winform代码生成器生成FastReport.NET报表模板文件(frx文件)
.NET代码生成器V6.1 - 快速生成Winform窗体代码
C#Winform代码生成器新功能 - 支持配置每个字段可弹窗选择数据
C# Winform代码生成器新功能 - 生成表格编辑窗体
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
Winform C/S架构自动升级程序 AutoUpgraderV1.2迭代记录|C/S开发框架
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
