• 在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);
    }
  • 相关阅读:
    checkbox美化
    JS 之简单计算器
    python实现简单用户认证和角色制授权
    搭建高性能web服务
    纯JS实现fadeIn 和fadeOut
    纯CSS实现气泡框
    javascript之对象(二)&& 继承问题
    JavaScript之对象(一)
    Web发展史
    [LeetCode 256] Paint House
  • 原文地址:https://www.cnblogs.com/yukaizhao/p/ProcessDialogKey.html
Copyright © 2020-2023  润新知