Лучше, если пользовательский элемент управления не знает, куда он встроен.
Рассмотрите возможность предоставления события TitleChanged
в пользовательском элементе управления. Тогда потребитель может самостоятельно обновлять себя.
public class MyUserControl : UserControl
{
// [...]
public string Title { get; private set; }
public event EventHandler TitleChanged;
// [...]
private void MyTextBox_TextChanged(object sender, EventArgs e)
{
Title = MyTextBox.Text;
TitleChanged?.Invoke(this, EventArgs.Empty);
}
}
И необходимый код класса потребителя можно записать так:
// after subscribing the myUserControl.TitleChanged event:
private void MyUserControl_TitleChanged(object sender, EventArgs e)
{
myTab.Text = myUserControl.Title;
}
Еще лучше, если вы используете привязку данных в пользовательской форме:
myTab.DataBindings.Add(nameof(TabPage.Text), myUserControl, nameof(MyUserControl.Title));