问题一:e.handled的作用是什么?(在keypress事件里和keydown事件里怎么不一样呢)
问题二:我要实现的是:当用户摁向左的键时, 文本框里的光标向右移动,当用户摁下向右的键时,文本框里的光标向左移动(语言:C#)
事情是这样的: 有文本框的keyPress事件对应的方法里要是使用有e.handled=true,那么摁下的键是无效的(即在屏幕上不显示),可是keypress事件判别不出许多功能键(如上下左右键),在keyUp或keyDown里的e.keyCode或e.keyValue可以识别出用户摁下的所有的键,但是
它们只可以获取,不可以设置。这该怎么办?

解决方案 »

  1.   

    1. e.Handled=true;代表按键事件已经处理
    2. 如果要禁止功能键用KeyDown事件的e.SuppressKeyPress,比如禁止使用左方向键移动光标 
    if(e.KeyCode== Keys.Left)
                e.SuppressKeyPress = true;
      

  2.   

    e.Handled = true; 
    处理事件 
    e.Handled = false; 
    不处理该事件 
    protected override bool ProcessDialogKey(Keys keyData)
    {
        if (_selectedPicture != null)
        {
            switch (keyData)
            {
                case Keys.Left:
                    break;
                case Keys.Right:
                      break;
                case Keys.Up:
                      break;
                case Keys.Down:
                    break;
                default:
                    break;
            }
        }    return base.ProcessDialogKey(keyData);
    }
      

  3.   

    keydown按下
    keypress按下放开后