You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor中是否有与WinForms的Keys枚举等效的KeyboardEventArgs枚举类型?

.NET Core/Blazor中是否有替代魔法字符串的键盘按键枚举?

.NET Core(包括用于Blazor的ASP.NET Core)没有内置等效于System.Windows.Forms.Keys的键盘按键枚举,但你可以通过以下几种方式避免使用魔法字符串:

1. 自定义枚举

自行定义与KeyboardEventArgs.Key值匹配的枚举,确保枚举名称和标准按键字符串完全一致:

public enum KeyboardKeys
{
    Backspace,
    Enter,
    Escape,
    Tab,
    // 根据需求添加其他按键
}

使用时通过nameof转换为字符串判断:

if (e.Key == nameof(KeyboardKeys.Backspace))
{
    // 执行对应逻辑
}

2. 静态常量类

创建包含常用按键字符串的静态常量类,统一管理按键值:

public static class KeyConstants
{
    public const string Backspace = "Backspace";
    public const string Enter = "Enter";
    public const string Escape = "Escape";
    public const string ArrowUp = "ArrowUp";
    // 其他按键常量
}

使用示例:

if (e.Key == KeyConstants.Backspace)
{
    // 执行对应逻辑
}

3. 第三方组件库支持

部分Blazor第三方UI组件库(如Radzen、Syncfusion)会内置键盘按键枚举或常量集合,如果你正在使用这类库,可以直接复用它们提供的工具类。

需要注意的是,KeyboardEventArgs.Key的值遵循W3C的UI Events键盘事件标准,自定义枚举或常量时要严格匹配标准字符串,避免判断失效。

内容的提问来源于stack exchange,提问作者lonix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:31:17