Visual Studio 中 KeyDown 事件、KeyPress 事件和 KeyUp 事件之间的区别

2023-12-15

谁能告诉我两者之间的区别KeyDown事件,KeyPress事件和KeyUp事件?我查了msdn网站,没有太多解释。

谁能用简单的逻辑意义告诉我每个事件发生的时间?我感觉上述所有事件都是在按下某个键时发生的。那么它们之间的具体区别是什么呢?


MSDN 文档相当清楚地说明了这三个事件发生的顺序:

关键事件按以下顺序发生:

  1. KeyDown
  2. KeyPress
  3. KeyUp

KeyDown当用户按下键盘上的某个键(同时仍按住该键)时,该按钮就会升起。

KeyPress是为特点键(与 KeyDown 和 KeyUp 不同,它们对于非字符键也会升高)。这是一个比 KeyDown 或 KeyUp 更高​​级别的事件,因此,可以在EventArgs.

KeyUp用户释放键盘上的按键后引发。

一般来说,您应该处理KeyUp您的应用程序中的事件。不应在 UI 中启动操作,直到after用户释放密钥。自从KeyUp是一个比KeyPress,您始终可以轻松获得有关按下的按键的大量信息,它甚至可以用于处理非字符按键。


需要注意的事情all然而,这些事件的一个特点是它们仅由具有焦点的控件引发。这意味着,如果表单上的按钮控件当前具有焦点,则您的任何关键事件都不会发生。form永远都会被提升。对于刚接触 .NET 的程序员来说,这常常令人困惑。处理这个问题的最好方法是覆盖表单的ProcessCmdKey method:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == (Keys.Control | Keys.A))
    {
        MessageBox.Show("You pressed Ctrl+A!");
    }
    return base.ProcessCmdKey(ref msg, keyData);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 中 KeyDown 事件、KeyPress 事件和 KeyUp 事件之间的区别 的相关文章

  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • 使用Physics.Raycast 和Physics2D.Raycast 检测对象上的点击

    我的场景中有一个空的游戏对象 带有 2D 组件盒碰撞器 我将脚本附加到该游戏对象 void OnMouseDown Debug Log clic 但是当我点击我的游戏对象时 没有任何效果 你有什么想法 如何检测我的盒子碰撞器上的点击 使用光
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大

随机推荐

  • 如何使用 createBottomTabNavigator 对 React Navigation 过渡进行动画处理?

    我花了最后一天的时间试图找出如何使用反应导航实现简单的淡入淡出屏幕转换 但我找不到一种方法让它与底部选项卡导航器一起使用 有人可以帮我吗 我已经广泛阅读了文档 但动画似乎只能通过堆栈导航器使用 你能在这个小吃演示中进行过渡吗 只需创建一个A
  • Python 2.7 和 PyDev - matplotlib 和 NumPy 不起作用

    我正在尝试使用 Python 2 7 和 Eclipse 以及 PyDev 插件让 matplotlib 在 Windows 7 64 位 下工作 我安装了 NumPyhttp www lfd uci edu gohlke pythonli
  • 访问本地类中的隐藏变量

    我是 Java 新手 我对下面的示例感到困惑 public class Test int testOne member method int x 5 class inTest local class in member method voi
  • Python石头剪刀布游戏

    我正在使用Python 我正在尝试编写一个简单的程序来模拟石头 剪刀 布游戏 一切正常 除了当我收到此错误时输入无效响应 石头 布或剪刀以外的其他内容 时 Traceback most recent call last File C Use
  • SpriteKit 游戏中的 AVAudioPlayer 和性能问题

    我在使用 AVAudioPlayer 和在 spritekit 游戏中播放短声音时遇到问题 我有相当动态的游戏场景 当用户点击特定元素时 我想播放简单的 嘟嘟 声音 但我注意到使用 AVAudioPlayer 执行声音会导致严重的性能问题
  • flutter:参数格式不正确

    我是 Flutter 新手 今天我一直遇到一个问题 我无法调试我的应用程序 因为它说参数格式不正确 Parameter format not correct FAILURE Build failed with an exception Wh
  • httpurlconnection线程安全

    HttpUrlConnection 线程安全吗 IE 如果我有一个连接到服务器的 HttpConnection 实例 并且该实例由不同的线程使用 例如尝试同时发送 POST HttpUrlConnection 将如何处理这种情况 a 他们会
  • 如何将表格包裹在链接中?

    哪些元素允许链接 我想要wrap围绕 a 的链接table a href 123 php class grap table border 1 style width 600px height 600px tbody tr td align
  • MongoDB节点检查objectid是否有效

    如何使用 Node 的驱动程序检查 ObjectID 是否有效 我试过 var BSON mongo BSONPure console log Validity BSON ObjectID isValid ddsd 但我不断收到异常 而不是
  • select() 没有响应 /dev/input/mice 上的写入

    我正在编写一个程序来监视select 键盘和鼠标设备文件 它等待这些文件上的任何写入操作 这应该在有击键或鼠标移动时发生 并且一旦有写入操作 就会执行一些作业 但这不起作用 我的代码如下 include
  • 如何在 Xcode 8 中使用 Swift 3 创建 ManagedObjectContext?

    尝试在视图控制器中创建新上下文时 在新的 Xcode 8 使用 Swift 3 iOS 10 中遇到问题 AppDelegate 类型的值没有成员 managementObjectContext let context UIApplicat
  • 如何将 HTML 字符串注入到元素中?

    使用 Mootools 我们可以将一个元素注入另一个元素 childID inject parentID top 第二个参数允许我控制位置 可以是 顶部 或 底部 以将其注入到父对象中 也可以是 之前 或 之后 以将其作为同级对象注入 我们
  • 将两种表单中的数据作为 Angular 中的一个对象发布

    这是我在 Angular 上的第一个项目 我已经尽我所能 我会尝试自己完成它 但我觉得我需要帮助 项目简介 我有课mod ts export interface Mod id number name string clauseList Cl
  • 带分散聚集的 MPI 矩阵乘法

    我正在尝试使用 C 中的 MPI 进行矩阵乘法 我们必须做一个顺序版本和一个并行版本 我的并行版本没有给出正确的答案 我不知道为什么 我认为我没有向进程发送正确的通信 但我不能确定 教授只是回顾了不同的发送 接收 收集等消息 但并没有真正深
  • USB 设备的 SetupComm、SetCommState、SetCommTimeouts 失败

    我正在打开一个 USB 设备 用于通信使用CreateFile HANDLE hUsb CreateFile LCLD9 GENERIC READ GENERIC WRITE 0 null OPEN EXISTING FILE FLAG O
  • UITableViewCell 阴影

    我正在尝试实现这个设计 但我浏览过的所有解决方案都不起作用 据我了解 这可能是因为单元格和 UITableView 之间的间距所致 设计如下 所以基本上我想要实现的是从所有 4 个侧面都有阴影以及每个单元格和下一个单元格之间的一些间距 谢谢
  • 与 Surefire 并行运行测试并使用 TestNG Jenkins 插件正确显示它们

    我正在使用 Surefire 运行并行执行测试 一切似乎都工作正常 但是 在 target surefire reports 文件夹中只生成了一个 testng results xml 其中 仅包含最后运行的测试的结果 我发现了一个与旧版本
  • Cortana 技能不适用于 Windows 10 或 iOS

    我使用 Microsoft Bot Framework 添加了 Cortana 技能 我的召唤短语是 我的技能 当我尝试在 iOS 或 Windows 中与 Cortana 交谈时 它不会调用该技能 相反 它一直引导我访问 Bing 结果
  • PHP 函数使用 scrape 方法抓取远程站点上

    有人有一个 PHP 函数可以抓取远程站点上特定 DIV 内的所有链接吗 所以用法可能是 links grab links url divname 并返回一个我可以使用的数组 抓取链接我可以弄清楚但不知道如何让它只在特定的 div 内执行 谢
  • Visual Studio 中 KeyDown 事件、KeyPress 事件和 KeyUp 事件之间的区别

    谁能告诉我两者之间的区别KeyDown事件 KeyPress事件和KeyUp事件 我查了msdn网站 没有太多解释 谁能用简单的逻辑意义告诉我每个事件发生的时间 我感觉上述所有事件都是在按下某个键时发生的 那么它们之间的具体区别是什么呢 M