什么是选择键?

joe*_*joe 6 c# keyboard keydown

在为我的应用程序寻找一些快捷方式时,我偶然发现了 C# Keys 枚举中的一些常量:

  • 选择
  • 分隔器
  • 进程密钥
  • Pa1
  • 克塞尔
  • 执行

MSDN 上没有关于它们的更多信息。
问题是:哪个键盘键对应于这些值?
(它们是否采用标准键盘布局?)

Jim*_*hel 5

VK_SELECTSelect大多数键盘上不存在的键的键码。我很确定我没有见过一个。

您可以通过调用MapVirtualKey函数来检查您的键盘是否支持它,该函数可以将虚拟键码映射到键盘扫描码。如果函数返回 0,则没有映射。

我创建了一个小的 Windows 窗体应用程序来说明这一点。只需制作一个表格并连接一个 KeyDown 处理程序:

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace testoForm
{
    public partial class Form1 : Form
    {
        [DllImport("user32")]
        static extern UInt32 MapVirtualKey(UInt32 nCode, UInt32 uMapType);
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            ShowKey(e.KeyCode);
        }

        private void ShowKey(Keys key)
        {
            var keyCode = (UInt32)key;
            var scanCode = MapVirtualKey(keyCode, 0);
            var s = String.Format("VK = {0:X2}, SC={1:X2}", keyCode, scanCode);
            MessageBox.Show(s);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ShowKey(Keys.Select);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您按某个键,消息框将显示键代码和映射的扫描代码。我添加了一个按钮,将显示Select密钥的扫描码。在我的系统上,该函数为 返回 0 Keys.Select