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

在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);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值