これはおそらく些細な質問ですが、私はまだ答えを見つけていません。キー ナビゲーション (矢印キー) の可能性を追加して、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();
}
}
このコードでは、配列の各要素に対してこのエラーが発生し続けます 無効なランク指定子: 期待される ',' または ']'