C# Keys 的完整攻略
简介
C# Keys 是一个用于 Windows Forms 控件的 KeyCode 枚举的组成部分,KeyCode 枚举表示键盘或鼠标的各个键和鼠标动作的键。使用 C# Keys ,可以很方便地检测用户按下的键或鼠标的动作。
KeyCode 与 ModifierKeys 枚举
KeyCode 枚举
KeyCode 枚举表示一个键,每个键对应一个整数值,可以使用该整数值或 KeyCode 枚举值与 Keys 枚举的值进行比较,以检测用户按下的键。
下面是 KeyCode 枚举部分常用键盘键的值:
- Enter: 13
- Tab: 9
- Escape: 27
- Space: 32
- Shift: 16
- Control: 17
- Alt: 18
- Delete: 46
- Back: 8
- Left: 37
- Up: 38
- Right: 39
- Down: 40
- A ~ Z:65~90
- 各种功能键:F1~F24:112~135
ModifierKeys 枚举
ModifierKeys 枚举表示修改键,每个修改键对应一个整数值,可以通过按下控制键,Shift键和Alt键等修改键和KeyCode枚举表示的键组合。例如,如果用户同时按下 Ctrl + C 键,您可以检测到这个组合使用以下代码:
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.C)
{
// 执行复制操作
}
检测按键
实现自己的按键响应事件方法可以使用 C# Key Press 事件或者是 C# Key Down 事件。
Key Press 事件
KeyPress 事件在用户按下字符键时触发,当按下控制键时不会产生此事件。按下 Shift、Alt、或 Windows 修改键时,我也不会引发 KeyPress 事件。
下面是一个 KeyPress 事件示例:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13) // 检测回车键
{
MessageBox.Show("Enter key is pressed");
}
}
Key Down 事件
KeyDown 事件在释放键盘键时触发,每次按下和释放任何键时都会引发一次此事件。如果按住键附加键(如 SHIFT,CTRL 或 ALT)并按一个非附加键,则此事件先于 KeyPress 事件发生。
下面是一个 KeyDown 事件示例:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.C) // 检测 Ctrl + C 组合键
{
MessageBox.Show("Ctrl + C key combination is pressed");
}
}
示例
下面是一个使用 C# Keys 的示例代码:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.C)
{
Clipboard.SetText(this.textBox1.SelectedText);
}
if (e.Control && e.KeyCode == Keys.V)
{
this.textBox1.SelectedText = Clipboard.GetText();
}
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
this.listBox1.Items.Add(this.textBox1.Text);
this.textBox1.Clear();
}
}
这段代码监听了控制键和 C、V 键。用户按下 Ctrl + C 时,把选中的文本字符串复制到剪贴板;用户按下 Ctrl + V 时,把剪贴板中的文本字符串粘贴到文本框中。在文本框中按下回车键时,将文本框中的文本添加到列表框中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Keys:获取 ICollection,其中包含 IDictionary