我发现了一些类似的问题,但没有一个C#
Winforms
。对于表格上的不同Checkboxes
,我有许多类似的方法,但现在检查的数量即将翻倍,我正在寻找一种更简单的方法。
下面是一个示例:
private void CheckPET_Click(object sender, EventArgs e)
{
if (CheckPET.Checked)
{
CheckAdicionarMaterial("PET");
}
else
{
if (Confirmacao())
CheckRemoverMaterial("PET");
else
CheckPET.Checked = true;
}
}
我为每个Checkbox
都有一个,并且它们都遵循相同的模式,所以如果我能有一个处理所有点击的方法,我可以做这样的事情:
private void GenericCheckbox_Click(object sender, EventArgs e)
{
if (Checkbox.Checked)
{
CheckAdicionarMaterial(Checkbox.Text);//The text of the boxes is always the string I want to pass here.
}
else
{
if (Confirmacao())
CheckRemoverMaterial(Checkbox.Text);
else
Checkbox.Checked = true;
}
}
我能做些什么来实现这一点?
如果我正确理解了这个问题 - 将单个函数绑定为多个复选框的事件处理程序?
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkbox = sender as CheckBox;
if (checkbox == null) return;
if (checkbox.Checked)
{
CheckAdicionarMaterial(checkbox.Text);//The text of the boxes is always the string I want to pass here.
}else
{
if (Confirmacao("Desmarcar removerá todas ocorrências do material. Continuar?"))
CheckRemoverMaterial(checkbox.Text);
else
checkbox.Checked = true;
}
}