在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);
}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-16
  • 2022-12-23
  • 2021-10-20
  • 2022-12-23
  • 2021-10-17
猜你喜欢
  • 2021-11-06
  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-22
相关资源
相似解决方案