Как связать textbox и checkbox в C#

Начал делать маленькую программу. На форме присутствуют checkbox1,2,3,4,.... и textbox1,2,3,4,5.... есть код, который смотрит какие из checkbox отмечены. Если ли какая-нибудь возможность связать textbox и checkbox. Чтобы при обнаружении кодом, отмеченного checkbox, у меня из заданного ему textbox брался текст и переносился в richTextBox, c использованием AppendText. Ниже пример кода с цикличной проверкой всех checkbox на форме на наличие checked на моей форме.

foreach (Control control in this.tabControl1.TabPages[0].Controls) //цикл по форме с вкладками
            {
                if (control as CheckBox != null) // проверка на пустое значение
                {
                    if (control.Visible == true)// проверка на видимость
                    {
                        if ((control as CheckBox).Checked)// проверка на чек
                        {
                            
                        }
                        else if ((control as CheckBox).Checked == false)
                        {
                            
                        }
                    }
                }

Ответы (1 шт):

Автор решения: Виктор

Создаём UserControl с компонентами CheckBox и TextBox. Создаём свойства Checked и TextForAdd:

namespace Sort.UserPanel
{
    public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }
        public bool Checked { get { return checkBox1.Checked; } }
        public string TextForAdd { get { return textBox1.Text; } }
    }
}

На основную форму добавляем UserControl1 нужное количество раз. Я для удобства добавил на (Panel)LeftPanel:

// Проверка на Checked и добавление текста в richTextBox
private void testCheckBoxes(object obj)
{
    if (obj is UserControl1 control)
    {
        
                string text = control.TextForAdd;
                // Добавляем в richTextBox здесь
                // .....
    }
}
// Кнопка для добавления текста в richTextBox
private void button1_Click(object sender, EventArgs e)
{
    foreach (Control control in this.LeftPanel.Controls)
    {
         if (control as UserControl1 != null)
         {
              if (control.Visible == true )
              {
                  testCheckBoxes(control);
              }
         }
    }
}
→ Ссылка