请问大家如何在OnKeyPress事件中识别例如Ctrl+C的组合键?

laonawuli 2012-03-16 11:01:44
OnKeyDown中可以使用
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.C)
{

}
识别;

可是OnKeyPress呢?



谢谢
...全文
460 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chinajiyong 的回复:]

重写ProcessCmdKey
C# code

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (msg.Msg)
{
case 0x100:
case 0x104:
switch (keyData)
{
case Keys.Control | Keys.C:
MessageBox.……
[/Quote]
+1
OnKeyPress 是指键盘按下触发的事件,他重写ProcessCmdKey 已经可以相应onkeypress
应该是这样……
laonawuli 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chinajiyong 的回复:]

重写ProcessCmdKey
C# code

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (msg.Msg)
{
case 0x100:
case 0x104:
switch (keyData)
{
case Keys.Control | Keys.C:
MessageBox.……
[/Quote]

请问OnKeyPress 如何判断?
laonawuli 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gomoku 的回复:]

既然OnKeyDown可以用了,干吗还麻烦OnKeyPress。
[/Quote]

我想再KeyPress中判断是否录入的是数字
EnForGrass 2012-03-16
  • 打赏
  • 举报
回复
重写ProcessCmdKey

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (msg.Msg)
{
case 0x100:
case 0x104:
switch (keyData)
{
case Keys.Control | Keys.C:
MessageBox.Show("Ctrl + C pressed");
break;
}
break;
}
return base.ProcessCmdKey(ref msg, keyData);
}
gomoku 2012-03-16
  • 打赏
  • 举报
回复
既然OnKeyDown可以用了,干吗还麻烦OnKeyPress。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧