C#中如何实现用户控件的键盘事件?

maohuan1126 2010-07-07 04:58:08
紧急,各位帮帮忙
...全文
350 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vip__888 2010-07-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hucailin 的回复:]
KeyPress 和 KeyDown
这个事件先判断用户按键操作 如
private void cboShow_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = e.KeyChar < '0' || e.KeyChar > '9';
if (e.KeyChar == (char)8)
{
e.……
[/Quote]
jianuMan 2010-07-07
  • 打赏
  • 举报
回复
view plaincopy to clipboardprint?
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
using System.Windows.Forms;

namespace WindowsFormsApplication19
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
if (!((e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) || (e.KeyCode == Keys.Delete)
|| (e.KeyCode == Keys.Back) || (e.KeyCode == Keys.Left)
|| (e.KeyCode == Keys.Right)))
{
/// 拦截该键
e.SuppressKeyPress = true;
}
}
}
}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jianuMan/archive/2010/06/27/5697244.aspx
doubleu2005 2010-07-07
  • 打赏
  • 举报
回复
首先把窗体的keypreview属性设置为true
不知道LZ具体的要求是什么
aitanhuan 2010-07-07
  • 打赏
  • 举报
回复
muler1988 2010-07-07
  • 打赏
  • 举报
回复
首先把窗体的keypreview属性设置为true


这是属性是必须设置的

然后在keyDown事件里写

/// <summary>
/// 键盘事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PhotoForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F2) //保存按钮快捷键
{
this.btnSave_Click(sender, e);
}
else if (e.KeyCode == Keys.F3) //重置按钮快捷键
{
this.btnReset_Click(sender, e);
}
else if (e.KeyCode == Keys.F5) //复制上条记录快捷键
{
this.btnCopy_Click(sender, e);
}
else if (e.KeyCode == Keys.F12) //浏览记录快捷键
{
this.btnLiulan_Click(sender, e);
}
else if (e.KeyCode == Keys.Escape) //退出按钮的快捷键
{
this.Close();
}

}
ww_cain 2010-07-07
  • 打赏
  • 举报
回复
友情顶贴
muler1988 2010-07-07
  • 打赏
  • 举报
回复
首先把窗体的keypreview属性设置为true

然后在keyDown事件里写

/// <summary>
/// 键盘事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PhotoForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F2) //保存按钮快捷键
{
this.btnSave_Click(sender, e);
}
else if (e.KeyCode == Keys.F3) //重置按钮快捷键
{
this.btnReset_Click(sender, e);
}
else if (e.KeyCode == Keys.F5) //复制上条记录快捷键
{
this.btnCopy_Click(sender, e);
}
else if (e.KeyCode == Keys.F12) //浏览记录快捷键
{
this.btnLiulan_Click(sender, e);
}
else if (e.KeyCode == Keys.Escape) //退出按钮的快捷键
{
this.Close();
}

}
robin521 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hucailin 的回复:]
KeyPress 和 KeyDown
这个事件先判断用户按键操作 如
private void cboShow_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = e.KeyChar < '0' || e.KeyChar > '9';
if (e.KeyChar == (char)8)
{
e.……
[/Quote]
+1
冰凝瞬间1986 2010-07-07
  • 打赏
  • 举报
回复
KeyPress 和 KeyDown
这个事件先判断用户按键操作 如
private void cboShow_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = e.KeyChar < '0' || e.KeyChar > '9';
if (e.KeyChar == (char)8)
{
e.Handled = false;
}
}
huwei001982 2010-07-07
  • 打赏
  • 举报
回复
KeyPress 和 KeyDown 都可以吧
houyizhinv 2010-07-07
  • 打赏
  • 举报
回复
你在界面上丢下这个控件 它的事件里面没有?

如果没有就去自定义控件里面重新写吧
zzyhuian06142 2010-07-07
  • 打赏
  • 举报
回复
Keypress?

110,567

社区成员

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

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

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