這可能是一個微不足道的問題,但是,我還沒有找到答案。我試圖通過添加關鍵導航(箭頭鍵)的可能性來改進我的winforms應用程序。問題是我有許多按行和列排列的按鈕,並且已經證明導航很麻煩。向上/向右和向下/向左箭頭只增加和減少索引,而不是沿指定方向移動。到目前爲止,我唯一的想法是將按鈕索引映射到2d數組並將其用作參考按鈕,但是,我一直不成功。任何人有關於我如何實現這一點的一些想法或建議? 我使用C#在Visual Studio 2008和.NET3.5如何瀏覽按鈕的行/列
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();
}
}
有了這個代碼,我不斷收到此錯誤數組 無效排名符中的每個元素:預期「」或‘]’
描述事情是如何佈置的。直接在表單上?在諸如'TableLayoutPanel'的容器內部?導航......你的意思是在按下箭頭時將「改變焦點」改爲另一個按鈕?你有什麼嘗試...顯示一些代碼。 – DonBoitnott
按鈕直接放在窗體上,以3x3格式排列。基本上我要求的是一種方法來改變焦點到箭頭鍵指向的按鈕,而不是索引中的下一個 –