M
If I understand correctly, you want to do something like that. ♪ ♪ Use the value of the properties for comparison Tag♪
I'm making chequeboxes in the code, but you're free to create them in the designer, but don't forget to assign all chequeboxes the right value. Tag♪public partial class Form1 : Form
{
private readonly string _tagDog = "Dog";
private readonly string _tagCat = "Cat";
public Form1()
{
InitializeComponent();
this.StartPosition = FormStartPosition.CenterScreen;
this.Text = "Пример";
//добавляем в коде чексбоксы
AddTypeAnimalsCheckboxes();
AddAnimalsCheckboxes();
}
private void AddTypeAnimalsCheckboxes()
{
int startY = 33;
int delta = 20;
var checkBoxDogs = new CheckBox
{
Name = "checkBoxDogs",
Tag = _tagDog, //!
Text = "Собаки",
Height = 17,
Width = 70,
Location = new Point(x: 34, y: startY)
};
var checkBoxCats = new CheckBox
{
Name = "checkBoxCats",
Tag = _tagCat, //!
Text = "Кошки",
Height = 17,
Width = 70,
Location = new Point(x: 34, y: startY + delta)
};
checkBoxDogs.CheckedChanged += CheckBoxAnimal_CheckedChanged;
checkBoxCats.CheckedChanged += CheckBoxAnimal_CheckedChanged;
groupBoxTypeAnimal.Controls.Add(checkBoxDogs);
groupBoxTypeAnimal.Controls.Add(checkBoxCats);
}
private void AddAnimalsCheckboxes()
{
int startY = 33;
int delta = 20;
var checkBoxDog1 = new CheckBox
{
Name = "checkBoxDog1",
Tag = _tagDog, //!
Text = "Шарик",
Height = 17,
Width = 70,
Location = new Point(x: 36, y: startY)
};
var checkBoxCat1 = new CheckBox
{
Name = "checkBoxCat1",
Tag = _tagCat, //!
Text = "Мурзик",
Height = 17,
Width = 70,
Location = new Point(x: 36, y: startY + delta)
};
var checkBoxDog2 = new CheckBox
{
Name = "checkBoxDog2",
Tag = _tagDog,
Text = "Мухтар",
Height = 17,
Width = 70,
Location = new Point(x: 36, y: startY + delta * 2)
};
var checkBoxCat2 = new CheckBox
{
Name = "checkBoxCat2",
Tag = _tagCat,
Text = "Барсик",
Height = 17,
Width = 70,
Location = new Point(x: 36, y: startY + delta * 3)
};
groupBoxAnimals.Controls.Add(checkBoxDog1);
groupBoxAnimals.Controls.Add(checkBoxCat1);
groupBoxAnimals.Controls.Add(checkBoxDog2);
groupBoxAnimals.Controls.Add(checkBoxCat2);
}
private void CheckBoxAnimal_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkBox = sender as CheckBox;
foreach (CheckBox cb in groupBoxAnimals.Controls.OfType<CheckBox>())
{
//ищем по совпадению со значением Tag
if (cb.Tag == checkBox.Tag)
{
cb.Checked = checkBox.Checked;
}
}
}
}