Как связать 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);
}
}
}
}