什么是SELECT键?

时间:2014-06-02 13:18:52

标签: c# keyboard keydown

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

  • 选择
  • 分离器
  • ProcessKey
  • PA1
  • CRSEL
  • 执行

MSDN上没有关于他们的进一步信息 问题是:哪个键盘键对应那些值?
(它们是否采用标准键盘布局?)

2 个答案:

答案 0 :(得分:4)

VK_SELECT是大多数键盘上不存在的 Select 键的关键代码。我很确定我没见过。

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

我创建了一个Windows Forms应用程序来说明这一点。只需创建一个表单并挂钩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);
        }
    }
}

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

答案 1 :(得分:0)

在微软论坛上浏览时,人们说SELECT键是键盘上的回车键。我找到了一个网站列出了你所指的密钥,并简要阐述了它们的含义。 http://cherrytree.at/misc/vk.htm