0

我通过按下向下箭头键在文本框上有一个简单的增量,如下所示。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{

     if (keyData == Keys.Down)
     {

           int c = int.Parse(textBox1.Text);
           c++;
           textBox1.Text = c.ToString();


     }
 }

以上适用于按双向下箭头键而不是单按向下箭头键。

注意:上面的代码在 UserControl 上。我已经在表单 keydown EventHandler 上的简单 winform 应用程序上尝试过它,并且同样可以正常工作。

怎么克服?。

4

1 回答 1

3

您需要处理之前存在的其他命令,并在处理您正在查找的命令时返回。尝试将其更改为此,看看是否有帮助:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
   if (msg.WParam.ToInt32() == (int)Keys.Down)
   {
      int c = int.Parse(textBox1.Text);
      c++;
      textBox1.Text = c.ToString();
      return true;
   }
   return base.ProcessCmdKey(ref msg, keyData);
}
于 2013-01-18T17:50:32.680 回答