The method below will create a list with all checkbox
of previous versions, and finally, we will assign this method to the event of every checkbox
.
private void SelecionaCheckVersoesAnteriores(object sender, EventArgs e) {
//Esse é o checkbox que você vai clicar (dar o check)
var checkAtivado = (CheckBox)sender;
//Cria uma lista com todos os checkbox com um nome MENOR que o clicado
//O texto de cada checkbox foi convertido para número para utilizarmos o operador <
var listCheck = this.Controls?.OfType<CheckBox>().Where(p => Convert.ToInt32(p.Text.Replace(".", ""))
< Convert.ToInt32(checkAtivado.Text.Replace(".", "")));
//Percorre todos os itens da lista e atribui o mesmo valor:
//Se você dar check, então todos os anteriores vão ser checados, senão,
//todos serão desmarcados
foreach (var item in listCheck) {
item.Checked = checkAtivado.Checked;
}
//OU Se quiser que apenas aconteça ao dar um check, ou seja, só quando ativar,
//então marque como true diretamente
foreach (var item in listCheck) {
item.Checked = true;
}
}
//Aqui estão as atribuições ao evento Check de cada checkbox
private void checkBox1_CheckedChanged(object sender, EventArgs e) {
SelecionaCheckVersoesAnteriores(sender, e);
}
private void checkBox2_CheckedChanged(object sender, EventArgs e) {
SelecionaCheckVersoesAnteriores(sender, e);
}
private void checkBox3_CheckedChanged(object sender, EventArgs e) {
SelecionaCheckVersoesAnteriores(sender, e);
}