将 KeyDown 键转换为一个字符串 C#

2024-02-18

我有磁卡读卡器,当用户刷卡时它会模拟键盘输入。当我的 WPF 窗口处于聚焦状态时,我需要处理键盘输入一个字符串的情况。我可以获得这个键入的键列表,但我不知道如何将它们转换为一个字符串。

private void Window_KeyDown(object sender, KeyEventArgs e)
{
   list.Add(e.Key);
}

EDIT:简单的 .ToString() 方法没有帮助。我已经尝试过这个了。


为什么不构建字符串而不是添加到列表中:

private string input;

private bool shiftPressed;

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.LeftShift || e.Key == Key.RightShift)
    {
        shiftPressed = true;
    }
    else
    {
        if (e.Key >= Key.D0 && e.Key <= Key.D9)
        {
            // Number keys pressed so need to so special processing
            // also check if shift pressed
        }
        else
        {
            input += e.Key.ToString();
        }
    }
}

private void Window_KeyUp(object sender, KeyEventArgs e)
{
    if (e.Key == Key.LeftShift || e.Key == Key.RightShift)
    {
        shiftPressed = false;
    }
}

显然你需要重置input to string.Empty当您开始下一笔交易时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 KeyDown 键转换为一个字符串 C# 的相关文章

随机推荐

  • 使用额外 id 提交的 jQuery 表单序列化

    我有一个这样的表格
  • 如何对 HtmlHelper 进行单元测试,类似于“using(Html.BeginForm()){ }”

    有人可以建议我如何使用 Moq 为以下 HtmlHelper 方法编写单元测试吗 public static HtmlTagBase GenerateTag
  • 通过输入/输出重定向在后台运行进程

    我很想知道当进程具有输入 输出重定向以在后台运行进程时 在代码中使用 运算符是否会产生影响 这些代码行在后台运行进程方面有什么区别 有什么区别 如果有 我如何确定差异是什么 setsid python script py lt dev ze
  • 我无法执行需要使用 axios 设置标头的请求

    我正在尝试从外部 API 来自 Mashape 获取一些数据 这些数据需要特定的标头来设置 API 密钥 使用 jQuery 一切正常 ajax url https omgvamp hearthstone v1 p mashape com
  • GridView 行外边距

    我找不到向 GridView 行添加外边距的方法 我找到了setHorizontalSpacing and setVerticalSpacing在 GridView 行之间添加内部填充的属性 但它不适用于行的外边框 我希望得到 Google
  • 从 Visual Basic 发送电子邮件

    我正在开发一个项目 该项目的一部分是将电子邮件发送到位于 SQL 中的电子邮件地址列表 我正在使用以下代码 发送时只会抛出 发送失败 错误 没有其他的 谁能帮我解决这个问题吗 我真的很感激 Connect to SQL Server dat
  • Dagger 2模块依赖关系图:绑定多次

    我是 Dagger 2 的新手 试图将一个 相当 复杂的应用程序移植到它 我们对 通用 库有几个依赖项 与其他项目共享 这些 通用 库有时依赖于其他 通用 库 每个库公开一个模块 一个例子 Module public class JsonM
  • 下标需要接口“NSArray”的大小,这在非稳定 ABI 中不是恒定的

    我正在尝试使用 ASIHTTPRequest 将信息发送到服务器 并设置如下的发布值 for int i 0 i lt 13 i request setPostValue propertyValues i forKey propertyKe
  • 存储 Sprite Kit 级别数据

    我正在开发一个项目 其中屏幕上会出现一组目标 目标应该同时出现一定数量 并且每次出现之间有一定的延迟 我的问题是如何正确存储该游戏的关卡数据 我正在考虑使用 csv 文件来存储关卡数据 目标类型 位置 延迟等 但我想知道是否有更好的方法来做
  • 从 Joomla 1.5.26 升级/迁移到 Joomla 3.0.1

    我有一个 joomla 1 5 26 网站 想要升级到 Joomla 3 0 1 那可能吗 如果可以 步骤是什么 我正在寻找像 JUpgrade 这样的安装程序来执行此操作 我意识到这是一个两步过程 A 从 Joomla 1 5 26 迁移
  • 在ios中缓存视频

    我有以下方法在 AVMediaPlayerController 上播放视频 void sendRequestForVideo NSString VideoStr http www ebookfrenzy com ios book movie
  • 我可以在哪里存储(和管理)应用程序许可证信息? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开发一个 Windows 应用程序 这需要用户注册才能使用它 现在 我将许可证信息作为文件存储在 APpData 中 但删除该文
  • 我可以在运行 PHP 的 64 位系统上将 PHP_INT_SIZE 定义为 4 个字节吗?

    我正在使用 PHP 5 3 在我的 32 位系统上 INT 的大小 print PHP INT MAX PHP INT MAX n print PHP INT SIZE PHP INT SIZE bytes PHP INT SIZE 8 b
  • Google应用程序脚本仅在运行完成后更新文档的更改。我可以强制刷新之前吗?

    我想替换谷歌文档中的一段文本 然后将其转换为PDF 问题是 文档仅在脚本结束后更新更改 因此 当我运行以下代码时 PDF 尚未完成更改 有没有办法在脚本运行时强制它更新 var doc open DocumentApp openById f
  • Java Web 应用程序应该在哪里存储其数据?

    我的 Java Web 应用程序 myapp war 通过将其放入webappsUbuntu 10 04 上 Tomcat 的目录 该应用程序需要将一些数据保存在文件中 但是运行 Tomcat 的用户 tomcat6 对主目录没有写权限 u
  • 如何在 Dockerfile 中启动另一个 bash

    我想按照本教程在容器 CentOS 6 9 中将 GCC 从 4 4 7 更新到 4 7 2如何在 CentOS 上升级 GCC http ask xmodulo com upgrade gcc centos html 在教程的最后 作者使
  • 透明圆圈黑色

    我正在尝试用 Alpha 制作透明圆圈和黑色周围的所有内容 我正在使用这段代码 但不知何故它不起作用 Gdx gl glEnable GL20 GL BLEND Gdx gl glBlendFunc GL20 GL DST COLOR GL
  • 里氏替换原理的例子是什么?

    我听说里氏替换原则 LSP 是面向对象设计的基本原则 它是什么 它的使用示例有哪些 说明 LSP 的一个很好的例子 由鲍勃叔叔在我最近听到的播客中给出 是有时在自然语言中听起来正确的东西在代码中却不太有效 在数学中 一个Square is
  • rbind 列表列表中的数据帧

    我有一个列表 如下所示 x state year 其中的每个元素都是一个数据框 单独访问它们不是问题 但是 我想跨多个列表重新绑定数据帧 更具体地说 我希望输出尽可能多的数据帧 即每年 rbind 所有状态数据帧 换句话说 我想将所有状态数
  • 将 KeyDown 键转换为一个字符串 C#

    我有磁卡读卡器 当用户刷卡时它会模拟键盘输入 当我的 WPF 窗口处于聚焦状态时 我需要处理键盘输入一个字符串的情况 我可以获得这个键入的键列表 但我不知道如何将它们转换为一个字符串 private void Window KeyDown