0

これはおそらく些細な質問ですが、私はまだ答えを見つけていません。キー ナビゲーション (矢印キー) の可能性を追加して、winforms アプリケーションを改善しようとしています。問題は、行と列に配置された多数のボタンがあり、ナビゲートするのが面倒なことです。UP/RIGHT および DOWN/LEFT 矢印は、指定された方向に移動するのではなく、インデックスを増減するだけです。これまでのところ、私の唯一のアイデアは、ボタンのインデックスを 2 次元配列にマップし、それをボタンへの参照として使用することでしたが、うまくいきませんでした。これをどのように実装できるかについて、誰かアイデアや提案がありますか? Visual Studio 2008 および .NET3.5 で C# を使用しています。

Control[,] MyButtons = new Control[4,3] { {b1,b2,b3},{b4,b5,b6},{b7,b8,b9},{btn_Clear,b0,btn_Cancel}};
   for(int i=0;i<4;i++)
      for (int j = 0; j < 3; j++)
      {
        switch (e.KeyValue)
        {
          case 13: //return
            { e.Handled = false; break; }

          case 39:  //Right
            {
               j++;
               break;
            }
          case 38:  //Up
            {
               i++;
               break;
            }
          case 37: //Left
            {
               j--;
               break;
            }

          case 40: //Down
            {
               i--;
               break;
            }
        }
        if (e.KeyValue != 13)
        {
           e.Handled = true;                         //Don't pass on the keystroke
           MyButtons[i,j].Focus(); // Set the focus to the selected control
          Application.DoEvents();
        }
}

このコードでは、配列の各要素に対してこのエラーが発生し続けます 無効なランク指定子: 期待される ',' または ']'

4

1 に答える 1