How to get element's text by TabIndex in Windows Forms? smth like:
"this.Controls.GetElementByTabindex(1).text"
Is it possible?
Yes, it is possible with LINQ
:
var text = this.Controls.OfType<Control>()
.Where(c => c.TabIndex == index)
.Select(c => c.Text)
.First();
If you want to do it with extension method:
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);
try this.
string tabText= tabControl1.SelectedTab.Text;
MessageBox.Show(tabText);
In case you don't want to use linq, this can do this:
int index = 1;
string text;
foreach(Control control in Controls)
{
if(control.TabIndex == index)
{
text = control.Text;
break;
}
}
来源:https://stackoverflow.com/questions/21300277/get-elements-text-by-tabindex-in-c-sharp-winform