Search code examples
c#tabcontroltabpage

Is there a way to get tab page by it's text


I'm changing text (renaming tabs) of tab pages in tab control and I want to access tab page by it's text. The problem is, that these pages are created in code and I couldn't access them by their names

var yourtabs = tabControlFEPages.Controls
                                .OfType<TabPage>()
                                .Where(tab => tab.Name.Equals(cmbFEEdytujKarteWybierzKarte.Text))
                                .ToList(); 

var index = tabControlFEPages.TabPages.IndexOf(yourtabs[0]).ToString();
MessageBox.Show(index);

foreach (TabPage tab in yourtabs)
{
    MessageBox.Show(tab.ToString());
}

tabControlFEPages.TabPages[index].Text = txtFEEdytujKarteNowaNazwa.Text;

Solution

  • That's what I wanted:

            var yourtabs = tabControlFEPages.Controls.OfType<TabPage>().Where(tab => 
            tab.Text.Equals(cmbFEEdytujKarteWybierzKarte.Text)).ToList(); 
            var index = tabControlFEPages.TabPages.IndexOf(yourtabs[0]);
    
            if (!string.IsNullOrEmpty(txtFEEdytujKarteNowaNazwa.Text))
                tabControlFEPages.TabPages[index].Text = 
             txtFEEdytujKarteNowaNazwa.Text.ToString();