【发布时间】:2013-09-29 12:55:02
【问题描述】:
这可能是一个微不足道的问题,但是,我还没有找到答案。我正在尝试通过添加键导航(箭头键)的可能性来改进我的 winforms 应用程序。问题是我有许多按行和列排列的按钮,而且导航起来很麻烦。 UP/RIGHT 和 DOWN/LEFT 箭头只增加和减少索引,而不是在指定的方向上移动。到目前为止,我唯一的想法是将按钮索引映射到二维数组并将其用作按钮的引用,但是,我没有成功。有人对我如何实现这一点有一些想法或建议吗? 我在 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();
}
}
使用此代码,我不断为数组的每个元素收到此错误 无效的排名说明符:预期为 ',' 或 ']'
【问题讨论】:
-
描述事物的布局。直接上表格?在诸如
TableLayoutPanel之类的容器内?导航...您的意思是当按下箭头时将“更改焦点”到不同的按钮?你有什么尝试...显示一些代码。 -
按钮直接在表单上,以 3x3 格式排列。基本上我要的是一种将焦点更改为箭头键指向的按钮的方法,而不是索引中的下一个按钮
标签: c# visual-studio-2008 .net-3.5