C# Windows 窗体 : How to capture Capture Function, 箭头和导航键

标签 c# visual-studio-2010 special-characters keyevent

我正在 try catch 功能键 F1 到 F12 和 4 个箭头键以及主页、插入、删除、结束、向上翻页和向下翻页键。如何????

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
}

最佳答案

覆盖表单的 ProcessCmdKey() 方法。在将键盘消息发送到具有焦点的控件之前,它直接从消息循环中调用。这就是覆盖 WndProc() 不起作用的原因。

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
        if (keyData == (Keys.Control | Keys.F)) {
            MessageBox.Show("What the Ctrl+F?");
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }

从技术上讲,您还可以使用 KeyPreview = true 覆盖窗体的 OnKeyDown 方法,但这是一个丑陋的 VB6 时代错误。

关于C# Windows 窗体 : How to capture Capture Function, 箭头和导航键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5361486/

相关文章:

c# - 使用omp优化或提出c++,C#代码以查找所有相似的k个图案

带有特殊字符的正则表达式环视无效?

php - XML、HTML、PHP,使用引号编写优雅、易于阅读的字符串

special-characters - 我在 html 纯文本中看到了音乐符号,但有人知道它是如何发生的吗?

c# - 解析器错误消息 : 'FCR2.abs' is not allowed here because it does not extend class 'System.Web.UI.Page'

c# - 访问 GridView 单元格值

c# - 在不阻塞 UI 的情况下在 ViewModel 中加载大量数据

c# - 当实体集 ChangeTracker 发生更改时如何通知 UI

c# - 使用 VSPackage 从 Visual Studio 工具窗口突出显示代码窗口文本

c# - 在事件服务失败时仅重试一次服务调用逻辑帮助