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();


     }
 }

上記は、下矢印キーを1回押すのではなく、下矢印キーを2回押すと機能します。

注: 上記のコードは UserControl にあります。そして、フォームキーダウン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 に答える