您的位置:首页 > 其它

在winform中捕获上下键左右键等控制建的KeyPress事件

2008-12-12 16:22 295 查看
在winform中Form的KeyDown,KeyPress,KeyUp三个键盘事件,只可以捕获字符键,而不可以捕获TAB,HOME,UP,DOWN等控制键。如果要使用这几个键,可以重写Control的ProcessDialogKey方法,在此方法中可以做相关的事件处理。

例如下面的一段代码是CSS背景图合并工具中用户控制图片上下左右移动位置的代码

protected override bool ProcessDialogKey(Keys keyData)

{

if (_selectedPicture != null)

{

switch (keyData)

{

case Keys.Left:

if (_selectedPicture.Location.X > 0) _selectedPicture.Location = new Point(_selectedPicture.Location.X - 1, _selectedPicture.Location.Y);

break;

case Keys.Right:

_selectedPicture.Location = new Point(_selectedPicture.Location.X + 1, _selectedPicture.Location.Y);

break;

case Keys.Up:

if (_selectedPicture.Location.Y > 0) _selectedPicture.Location = new Point(_selectedPicture.Location.X, _selectedPicture.Location.Y - 1);

break;

case Keys.Down:

_selectedPicture.Location = new Point(_selectedPicture.Location.X, _selectedPicture.Location.Y + 1);

break;

default:

break;

}

}

return base.ProcessDialogKey(keyData);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: