通过c#winform中的TabIndex获取元素的文本

DiA*_*DiA 3 c# tabindex winforms

如何在Windows窗体中通过TabIndex获取元素的文本?像:

"this.Controls.GetElementByTabindex(1).text"
Run Code Online (Sandbox Code Playgroud)

可能吗?

Sel*_*enç 7

是的,有可能LINQ:

var text = this.Controls.OfType<Control>()
               .Where(c => c.TabIndex == index)
               .Select(c => c.Text)
               .First();
Run Code Online (Sandbox Code Playgroud)

如果你想用扩展方法做到这一点:

public static class MyExtensions
{
    public static string GetElementTextByTabIndex(this Control.ControlCollection controls,int index)
    {
        return controls.OfType<Control>()
                       .Where(c => c.TabIndex == index)
                       .Select(c => c.Text).First();
    }
}

string text = this.Controls.GetElementTextByTabIndex(1);
Run Code Online (Sandbox Code Playgroud)