Blazor通过@onkeydown等指令配合KeyboardEventArgs处理键盘事件,需关注精准响应、阻止默认行为及快捷键组合;常用e.Key判断按键、e.CtrlKey等判断修饰键,@onkeypress:preventDefault可声明式阻止,默认行为,MudBlazor等库提供更可靠的快捷键管理。

基础键盘事件写法
直接绑定方法,参数类型必须是 KeyboardEventArgs:
@code { private void HandleKeyUp(KeyboardEventArgs e) { Console.WriteLine(e.Key); } }
常见属性有:e.Key(按键名,如 "Enter"、"Escape"、"a")、e.Code(物理码,如 "KeyA")、e.CtrlKey、e.ShiftKey、e.AltKey、e.MetaKey(修饰键状态)。
阻止默认行为(比如禁用回车提交表单)
用 @on{event}:preventDefault 声明式控制:
- 全局阻止:
- 按条件阻止:
,然后在方法里动态设shouldPrevent = e.Key == "@";
MudBlazor 等组件库的快捷键增强
像 MudBlazor 提供了 KeyInterceptorService 和 KeyOptions,更适合做全局快捷键管理:
- 支持组合键语法,比如
"key+ctrl"表示 Ctrl+键,"key+shift+ctrl"顺序严格 - 可配置
Prevent="none"或Prevent="any"控制是否拦截原生行为 - 适合做 Ctrl+S 保存、Esc 取消等场景,比手动判断修饰键更可靠
文本框中常用交互模式
实际开发中高频需求有两类:
-
Enter 触发搜索:在
@onkeyup里判断e.Key == "Enter",调用搜索方法 -
Escape 清空输入:同样在
@onkeyup判断e.Key == "Escape",清空绑定值并移除焦点
注意:用 @onkeyup 比 @onkeypress 更稳妥,因为后者对功能键(如 Enter、Tab)支持不一致。










