【问题标题】:TabIndex for dynamically createTabIndex 用于动态创建
【发布时间】:2015-05-15 10:49:19
【问题描述】:

我有一些在运行时创建的控件,然后添加到某种形式的容器(在我的例子中是一个面板)。在创建控件时,我还设置了每个控件的 TabIndex。现在,我从最后一个控件(TextBox #4)开始并继续工作,以便第一个控件最终位于顶部。

我考虑到我在设置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);
}

【问题讨论】:

  • 我假设 i

标签: c# tabindex


【解决方案1】:

发件人: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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2014-03-09
    相关资源
    最近更新 更多