TabIndex用于动态创建

时间:2015-05-15 10:49:20

标签: c# tabindex

我有几个控件,我在运行时创建,然后添加到某种形式的容器(在我的情况下是一个面板)。在创建控件时,我还设置了每个控件的TabIndex。现在,我从最后一个控件(TextBox#4)开始并继续前进,以便第一个控件最终到达顶部。 enter image description here

我考虑到我在设置TabIndex时反向执行此操作,但是当我实际运行代码并按Tab键时,它总是从#4跳转到> #3 - > #2 - > #1(按照他们创建的顺序,而不是像我想要的那样从上到下)。调试时我可以看到每个控件TabIndex设置正确(TextBox#1.TabIndex = 1,...,TextBox#4.TabIndex = 4)我是否遗漏了某些内容或是否有一些解决方法?

代码:

Panel pnl = new Panel();
(for int i = fields.Count -1; i <= 0; i--)
{
   Label lbl = new Label();
   //do some stuff with label
   lbl.TabIndex = (i + 1);
   pnl.Controls.Add(lbl);
}

1 个答案:

答案 0 :(得分:0)

来自:https://msdn.microsoft.com/en-us/library/bd16a8cw%28v=vs.80%29.aspx?f=255&MSPPError=-2147217396

  

默认情况下,绘制的第一个控件的TabIndex值为0   第二个TabIndex为1,依此类推。

所以我只能假设您的+1不正确。

Panel pnl = new Panel();
(for int i = fields.Count -1; i <= 0; i--)
{
   Label lbl = new Label();
   //do some stuff with label
   lbl.TabIndex = i;
   pnl.Controls.Add(lbl);
}